Я использую NSUserDefaults для хранения пар ключ/значение в моем приложении. Ниже приведен пример кода:NSUserDefaults ненадежный?
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
let ud = NSUserDefaults.standardUserDefaults()
if !(ud.boolForKey("launched_before")) {
print("first_launch")
ud.setBool(true, forKey: "launched_before")
} else {
print("not_first_launch")
}
}
Первый раз, когда я запустить приложение, она печатает «first_launch», как и ожидалось, и второй раз, когда я запустить приложение, он печатает «not_first_launch», как ожидается, тоже. Однако, если я продолжу повторное запуск приложения, нажав кнопку «Стоп» и «Запустить» в Xcode через несколько раз (может быть, от 4 до 20 раз), boolForKey("launched_before")
вернет false, что неверно.
Я тестирую свое устройство (iPhone 6, iOS 9.3.1) и Xcode 7.3.
Кто-нибудь может мне помочь?
это может помочь! –
Но как это происходит во второй раз, он работает так, как ожидалось, что означает, что настройка boolean является успешной, не так ли? – TangZijian
это поможет вам понять NSUserDefault, как это работает: http://www.accella.net/knowledgebase/nsuserdefaults-some-pretty-good-practices/ –