如何在标签中显示 JSON 数据? Swift 2
How to show JSON data in a label? Swift 2
嘿,我正在尝试获取 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 */ }
嘿,我正在尝试获取 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 */ }