我正在根据本教程(
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.
谢谢,