每次打开应用时,我都会运行一些代码。它用于确定第一次登录的人员,或者他们是否是重复用户。基于该信息,该应用程序的行为有点不同。但它并没有像我想象的那样为我工作。这是代码:
- (void)viewDidAppear:(BOOL)animated
{
// Get user data.
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
// First arg is name and second is if not found.
NSString *user_id = [standardUserDefaults objectForKey:@"user_id"];
bool first_time_cookie = [standardUserDefaults boolForKey:@"first_time_cookie"];
[super viewDidLoad];
if(!first_time_cookie)
{
// First time on the app, so set the user cookie.
[standardUserDefaults setBool:YES forKey:@"first_time_cookie"];
[[NSUserDefaults standardUserDefaults] synchronize];
// Make new account
[standardUserDefaults synchronize];
}
else
{
// DO REPEAT USER ACTIONS
}
[[NSUserDefaults standardUserDefaults] synchronize];
}
我的userDefaults混乱了。有人能告诉我哪里出错吗?发生的问题是系统认为许多重复用户实际上是新用户。
谢谢!
答案 0 :(得分:2)
我怀疑问题可能与使用bool
而不是BOOL
有关。请参阅此问题here.
bool
映射到true / false的值,而BOOL
映射到YES / NO。您正在设置first_time_cookie
为YES(BOOL
值)。因此,请尝试:
BOOL first_time_cookie = [standardUserDefaults boolForKey:@"first_time_cookie"];