我正在关注this answer,以便在应用首次启动后显示一些简介信息。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
...
if(![[NSUserDefaults standardUserDefaults] boolForKey:@"hasSeenTutorial"]){
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"hasSeenTutorial"];
[[NSUserDefaults standardUserDefaults] synchronize];
[interface addHelpCards:nil];
NSLog(@"-First Time-");
} else {
NSLog(@"-Not First Time-");
}
...
}
问题是......它不起作用。我在我的设备上测试这个。一旦我点击完全关闭应用程序然后重新启动我再次收到“第一次”消息。有什么想法这个方法有什么问题吗?我很感激你的帮助。
答案 0 :(得分:3)
如果YES
已经hasSeenTutorial
(在其他地方),您只需为hasSeenTutorial
设置YES
。只需将其(和synchronize
)移动到if
答案 1 :(得分:3)
你应该在if中设置Bool值而不在else中设置。现在bool值永远不会被设置
答案 2 :(得分:3)
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// ...
id _object = [[NSUserDefaults standardUserDefaults] valueForKey:@"hasSeenTutorial"];
if (_object == nil) {
[[NSUserDefaults standardUserDefaults] setValue:@(TRUE) forKey:@"hasSeenTutorial"];
[[NSUserDefaults standardUserDefaults] synchronize];
NSLog(@"-First Time-");
} else {
NSLog(@"-Not First Time-");
}
// ...
}