NSUserDefaults在模拟器上工作,但在设备上不工作(get-nil)



使用NSUserDefaults,容器应用程序和扩展应用程序之间出现问题它在模拟器上运行良好,但在设备上不工作(崩溃)。我在用swift写作。

在我的容器应用中

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>清理项目并在运行后进行清理
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)

我认为这对你有帮助。

最新更新