我在代码中有一个简单的方法,看起来像下面这样:
- (BOOL)isFirstTimeLogin
{
NSString *t_gName =
[NSString stringWithFormat:@"%@", [[NSUserDefaults standardUserDefaults] objectForKey:kGroupIdentifierKey]];
if ([t_gName isEqualToString:@""] || t_gName == nil) {
DLog(@"LoginViewController, m:::isFirstTimeLogin, First time login happening.");
return YES;
}
DLog(@"LoginViewController, m:::isFirstTimeLogin, Not a first time login.");
return NO;
}
简单来说,这个代码会去设置中心获取一个PSTextFieldSpecifier的值。如果我手动添加一些任意文本,那么代码可以按预期运行。然而,每当我在新设备上首次安装应用程序时,第一个条件就会执行为false,但它应该是true。通过调试代码,gdb证明了对象确实为空:
(gdb) po t_gName
(null)
我可能做错了什么?为什么条件在应用程序首次安装时失败,t_gName是一个空/ null PSTextFieldSpecifier?我甚至尝试在我的设置中心中添加一个空字符串的DefaultValue。