作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经在谷歌和这里搜索过,到目前为止还没有运气。
为了查明我的应用程序之前是否已启动,我使用了类似于 this StackOverflow answer 中的代码。 .
主要区别在于 key 的否定(FirstLaunch
而不是 HasLaunched
):
configuration = [NSUserDefaults standardUserDefaults];
[configuration registerDefaults:[[NSDictionary alloc] initWithObjectsAndKeys:@"YES", @"FirstLaunch", nil]];
if ([configuration boolForKey:@"FirstLaunch"]) {
NSLog(@"aha");
// aha
[configuration setBool:NO forKey:@"FirstLaunch"];
[configuration synchronize];
}
这永远不会记录重要的@"aha"
消息,除非我以编程方式将@"FirstLaunch"
键设置为YES
。
这是一个错误还是我忽略了某些东西?我只是出于好奇而问,因为在链接的线程中使用原始 key 效果很好。
最佳答案
您将默认值设置为字符串,但将其读取为 BOOL
。将寄存器默认调用更改为与此类似:
[configuration registerDefaults:[[NSDictionary alloc] initWithObjectsAndKeys:@YES, @"FirstLaunch"]];
您可能还应该在该 if block 中将 FirstLaunch
值设置为 NO
。
关于objective-c - NSUserDefaults registerDefaults bool 值 YES 返回 NO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31684054/
我是一名优秀的程序员,十分优秀!