嘿,我试图获得JSON(使用Alamofire),并在标签上显示它。这是我从服务器得到的:
{
Value = 4
}
我写的是:
let Value = (response.result.value!["Value"] as? NSString) ?? 0
let prefs:NSUserDefaults = NSUserDefaults.standardUserDefaults()
prefs.setObject(Value, forKey: "Value")
prefs.setInteger(1, forKey: "Value")
prefs.synchronize()
//I try to show it by this code on the other page:
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(true)
self.valueLabel.text = prefs.valueForKey("Value") as? String
}
但是什么都没有。
'synchronize()'并不幼稚-它会定期自动调用(顺便说一下,有一些性能损失-没有必要每次都调用它- iOS会更新默认值)
然而,因为在你的情况下,你需要知道值在什么时候,你应该修复一个观察者(只需填写对象和你的更新标签的东西):
NotificationCenter.default.addObserver(forName: UserDefaults.didChangeNotification, object: nil, queue: OperationQueue.main) { _ in /* update your label */ }