我正在根据本教程(
http://bit.ly/NI9kQe)构建一个App,它使用自定义web api连接到Web服务器.其中一个要求是检测是否已点击“登录”或“注册”按钮.这是使用为接口构建器中的按钮设置的“标记”完成的(注册按钮的标记为1).
代码块位于btnLoginRegisterTapped方法内部,如下所示(错误发生在行 – > 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's 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; } }];
}
当我尝试构建项目(实际工作空间)时,我收到错误:
在’_strong id’类型的对象上找不到属性’tag’
我正在使用xcode 5.0部署iOS7.
谢谢,