我使用 NSUserDefaults在容器应用和扩展应用之间存在问题。它在模拟器上正常工作但不在设备上工作(崩溃)。我快速写作。
在我的容器应用
中override func viewDidLoad() {
var defaults = NSUserDefaults(suiteName: "group.myapp")
defaults.setValue(label1.text, forKey: "Textview")
defaults .synchronize()
}
在我的扩展程序中
override func viewDidLoad() {
var defaults = NSUserDefaults(suiteName: "group.myapp")
var string : String = defaults.valueForKey("Textview") as String //Crashed on device
label2.text = "\(string)" //get nil
}
我在我的设备上运行后崩溃但是在模拟器上工作,请帮忙!谢谢
答案 0 :(得分:0)
1>清理你的项目并在运行之后
2 - ;
override func viewDidLoad() {
let defaults = NSUserDefaults(suiteName: "group.myapp")
defaults.setObject(label1.text,forKey: "GameData")
defaults.synchronize()
}
获取数据:
if let defaults = NSUserDefaults.standardUserDefaults() {
if let str : AnyObject = defaults.objectForKey("GameData") {
println(str)
}
}
3>
var myValue:NSString = label1.text
NSUserDefaults.standardUserDefaults().setObject(myValue, forKey:"Username")
NSUserDefaults.standardUserDefaults().synchronize()
获取数据:
var myOutput: AnyObject? = NSUserDefaults.standardUserDefaults().objectForKey("Username")
println(myOutput)
我认为这有助于你。