2011-08-30 49 views
0

我有下面的代碼顯示根據結果警報:我怎樣才能提高以下代碼:如何改進Objective-C中的以下代碼?

-(IBAction)saveSettings:(id)sender 

{ UIAlertView中*警報=零;

username = self.usernameTextField.text; 
token = self.passwordTextField.text; 

// validate the username and token 
if(![self isValid]) 
{ 
    // show alert that it is not valid 

    alert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Invalid User Name or Password" delegate:self cancelButtonTitle:nil otherButtonTitles:@"Ok", nil]; 


    [alert show]; 
    return; 
} 

BOOL isSynched = [self syncSettings]; 

if(!isSynched) 
{ 
    alert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Error Syncing Settings" delegate:self cancelButtonTitle:nil otherButtonTitles:@"Ok", nil]; 
    [alert show]; 
} 
else 
{ 
    alert = [[UIAlertView alloc] initWithTitle:@"" message:@"Settings has been Synced Syncing" delegate:self cancelButtonTitle:nil otherButtonTitles:@"Ok", nil]; 
    [alert show]; 

}  

}

我想我實例提醒過很多次,看起來有點重複!

回答

3
username = self.usernameTextField.text; 
token = self.passwordTextField.text; 

UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"Error" 
               message:@"" 
               delegate:self 
             cancelButtonTitle:nil 
             otherButtonTitles:@"Ok", nil]; 
[alert autorelease]; 

// validate the username and token 
if(![self isValid]) 
{ 
    // show alert that it is not valid 

    alert.message = @"Invalid User Name or Password"; 
    [alert show]; 
    return; 
} 

BOOL isSynched = [self syncSettings]; 

if(!isSynched) 
{ 
    alert.message = @"Error Syncing Settings"; 
} 
else 
{ 
    alert.title = @""; 
    alert.message = @"Settings has been Synced Syncing"; 

}  
[alert show]; 
1

嘗試離開[alert show];所有這些情況下,出&然後放在最後...

if (!alert) return; 
[alert show]; 

phix23的回答也提供了很好的改善,因爲你設置了一堆警報的屬性明確地&只有一次。如果你使用,你也可以用我的改變條件...

if (alert.message != @"") return; 

乾杯,佩德羅:)