swift – 不安全的可变地址崩溃

前端之家收集整理的这篇文章主要介绍了swift – 不安全的可变地址崩溃前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个结构,有时,对于某些用户,在尝试访问该类型的变量时会出现崩溃. @H_502_1@struct AppSettings { var mute:Bool { didSet { if mute != oldValue { let savedSettings = NSUserDefaults.standardUserDefaults() savedSettings.setBool(mute,forKey: KEY_SETTING_MUTE) } } } init() { let savedSettings = NSUserDefaults.standardUserDefaults() if let savedMute = savedSettings.objectForKey(KEY_SETTING_MUTE) as? Bool { mute = savedMute } else { mute = false } } } var appSettings = AppSettings()

在应用程序启动期间的某个地方,它有时会崩溃

@H_502_1@if appSettings.mute { // This will sometimes cause a crash } // in AppDelegate or the methods it calls

这仅适用于某些用户,我似乎无法重现它.不是重现它是最糟糕的,因为它让我没有任何工作.

搜索不安全的可变地址或错误没有帮助,因为几乎没有结果.

我更改了代码的某些部分并执行它.一切都很好,没有崩溃. @H_502_1@struct AppSettings { var mute:Bool { didSet { if mute != oldValue { let savedSettings = UserDefaults.standard savedSettings.set(mute,forKey: "MUTE") } } } init() { let savedSettings = UserDefaults.standard if let savedMute = savedSettings.object(forKey: "MUTE") as? Bool { mute = savedMute } else { mute = false } } } override func viewDidLoad() { super.viewDidLoad() var appSettings = AppSettings() if appSettings.mute { print("It is mute ...") } }

猜你在找的Swift相关文章