嘿我试图获得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
}
但没有任何表现。
答案 0 :(得分:1)
'synchronize()'是不天真的 - 它会定期自动调用(顺便说一句,有一些性能损失 - 没有必要每次调用它 - iOS负责更新默认值)< / p>
但是,因为在你的情况下你需要知道值的时间,你应该修复一个观察者(只需填写对象和你的更新标签):
NotificationCenter.default.addObserver(forName: UserDefaults.didChangeNotification, object: nil, queue: OperationQueue.main) { _ in /* update your label */ }