NSUserDefaults在模拟器上工作,但没有在Device上工作(得到零)!

时间:2014-09-24 11:30:51

标签: swift nsuserdefaults xcode6

我使用 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
 }

我在我的设备上运行后崩溃但是在模拟器上工作,请帮忙!谢谢

1 个答案:

答案 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)

我认为这有助于你。