我正在使用观察者来跟踪用户的登录状态,状态更新为nsuserdefaults;下面是代码
if(loggedInStatusDefault != true){
defaults.addObserver(self, forKeyPath: loginDefaultsKeys.accessTokenKey, options: NSKeyValueObservingOptions.New, context: nil)
}
每当更新值loginDefaultsKeys.accessTokenKey
时,都会调用observeValueForKeyPath
函数 -
override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>) {
DDLogVerbose("LoggedIn successfully")
showHomeScreen()
}
在observeValueForKeyPath中,我调用的showHomeScreen()依赖于我在userdefaults中更新的accessToken。
这里的问题是,当我在模拟器上运行应用程序时,整个流程/代码正在运行,但是没有在ios设备上运行(在iphone 6s plus上运行,iphone 6运行ios 9)。
任何人都可以帮助解决这个问题的原因吗?观察者是否与设备有关?