I am building an application according to this guide ( http://bit.ly/NI9kQe ) that uses a custom web api to connect to a web server. One of the requirements is to determine if the Login or Register button has been activated. This is done using the "tag" that was set for the button in the interface builder (the registration button is labeled 1).
The code block is located inside the btnLoginRegisterTapped method as follows (an error occurs in the line → NSString * command = (sender.tag == 1)? @ "Register": @ "login";):
- (IBAction)btnLoginRegisterTapped:(id)sender { //form fields validation if (fldUserName.text.length < 4 || fldPassword.text.length < 4) { // [UIAlertView error:@"Enter username and password over 4 chars each."]; UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Opps!!" message:@"Enter username and password over 4 chars each." delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:nil]; // optional - add more buttons: [alert addButtonWithTitle:@"Yes"]; [alert show]; return; } //salt the password NSString* saltedPassword = [NSString stringWithFormat:@"%@%@", fldPassword.text, kSalt]; //prepare the hashed storage NSString* hashedPassword = nil; unsigned char hashedPasswordData[CC_SHA1_DIGEST_LENGTH]; //hash the pass NSData *data = [saltedPassword dataUsingEncoding: NSUTF8StringEncoding]; if (CC_SHA1([data bytes], [data length], hashedPasswordData)) { hashedPassword = [[NSString alloc] initWithBytes:hashedPasswordData length:sizeof(hashedPasswordData) encoding:NSASCIIStringEncoding]; } else { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Opps!!" message:@"Password cannot be reset!" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:nil]; // optional - add more buttons: [alert addButtonWithTitle:@"Yes"]; [alert show]; return; } //************ THIS IS WHERE THE ERROR OCCURS *****************// //check whether it a login or register NSString* command = (sender.tag==1) ?@ "register":@"login"; NSMutableDictionary* params =[NSMutableDictionary dictionaryWithObjectsAndKeys: command, @"command", fldUserName.text, @"username", hashedPassword, @"password", nil]; //make the call to the web API [[API sharedInstance] commandWithParams:params onCompletion:^(NSDictionary *json) { //handle the response //result returned NSDictionary* res = [[json objectForKey:@"result"] objectAtIndex:0]; if ([json objectForKey:@"error"]==nil && [[res objectForKey:@"IdUser"] intValue]>0) { //success [[API sharedInstance] setUser: res]; [self.presentingViewController dismissViewControllerAnimated:YES completion:nil]; //show message to the user [[[UIAlertView alloc] initWithTitle:@"Logged in" message:[NSString stringWithFormat:@"Welcome %@",[res objectForKey:@"username"] ] delegate:nil cancelButtonTitle:@"Close" otherButtonTitles: nil] show]; } else { //error UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Opps!!" message:@"Server down? Try Again" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:nil]; // optional - add more buttons: [alert addButtonWithTitle:@"Yes"]; [alert show]; return; } }];
}
when I try to build a project (actually on the workspace), I get an error message:
Property 'tag' not found on object of type '_strong id'
I am using xcode 5.0 deployment for iOS7.
Thanks,
source share