我正在尝试开发一个允许用户使用 AFNetworking 登录的应用程序。我已经正确设置了数据库,除了用户第一次登录外,一切似乎都运行良好。
我所拥有的非常简单:
[[API sharedInstance] commandWithParams:params
onCompletion:^(NSDictionary *json) {
//result returned
NSDictionary* res = [[json objectForKey:@"result"] objectAtIndex:0];
if ([json objectForKey:@"error"]==nil && [[res objectForKey:@"UserID"] intValue]>0) {
[[API sharedInstance] setUser: res];
[self performSegueWithIdentifier:@"Login" sender:self];
} else {
//error
[UIAlertView title:@"Error" withMessage:[json objectForKey:@"error"]];
}
}];
基本上,上面的代码返回用户登录详细信息的结果,只有当登录详细信息匹配时才成功。正如您在上面看到的,我在 sharedInstance 中明确设置了用户,在整个应用程序中使用。设置用户后,我尝试执行 segue,因为这就是登录按钮应该做的。
segue 确实发生了,程序可以运行,但是有两个问题我无法解决,我一直在花费数小时试图修复它。首先我在 Xcode 的输出窗口中得到消息:
警告:在演示过程中尝试在 LoginVC 上演示 UITabBarController!
其次,为了测试用户设置是否正确,在配置文件屏幕(第一个屏幕连接到)上有一个标签,其文本设置为:
NSString stringWithFormat:@"Welcome %@",[[[API sharedInstance] user] objectForKey:@"username"]];
用户名是否实际出现或说(null)是一个命中或错过,如图所示:
您还可以看到我在那里制作的一个按钮,用于将用户的值打印到输出窗口。即使消息是“欢迎(null)”并且我按下按钮,所有值都正确存在,所以我不确定为什么字符串有时会显示为 null。
这是关于我遇到的问题的故事板设置:
如果有人可以帮助我解决这个问题,我将不胜感激。