dar*_*sky 1 iphone cocoa-touch objective-c nsuserdefaults ios
参考以下问题:iPhone:如何检测首次启动应用程序的时间?
当我查找NSUserDefaults苹果引用时,它表示registerDefaults
不会将数据存储到磁盘上.在上面的问题中,应用程序firstLaunch
会YES
在每次启动时注册该值.因此,每次启动应用程序时,都会firstLaunch
被覆盖YES
,因此应用程序将始终认为这是应用程序的首次启动.
我对吗?
编辑:
在完成上面的教程所说的之后,无论如何它并不总是有效.我继续从Xcode重新启动,并1
在第一次启动时继续打印出bool值.
registerDefaults:
不会覆盖默认值中已有的内容,但会设置默认值为defaults.因此,如果缺少默认值,则使用默认默认值.令人困惑,不是吗?
如果您从未在密钥下写入值FirstLaunch
,那么boolForKey:@"FirstLaunch"
将使用来自的值registerDefaults:
.但是,如果您之前执行过setBool:NO forKey:@"FirstLaunch"
,之后再次请求它,则不使用boolForKey:
值registerDefaults:
.