保存字典中迅速3与xcode中userdefaults 8

问题描述:

我使用以下代码来保存一个目的是使用的xcode 8 UserDefaults(先前NSUserDefaults的):保存字典中迅速3与xcode中userdefaults 8

let defaults = UserDefaults.standard() 
defaults.set(someObject, forKey: "someObject") 
print(defaults.object(forKey: "someObject")) 

someObject是一个字典,我上运行模拟器。

由于某些原因,这不是保存该值而是打印'nil'。想知道这是否是模拟器问题。

+0

实际上它是saving..dont知道什么是你的someObject?试试这个defaults.set(“Hello WWDC”,forKey:“someObject”),你会看到结果 –

+0

someObject是一个字典。刚刚编辑。 – alionthego

+1

@alionthego我注意到同样的问题,但它只发生在模拟器上,当我测试它在真正的设备上正常工作。顺便说一句,它是测试版,所以你应该报告一个错误 –

这个问题似乎是由于安装了两个版本的xcode/simulator而导致的。

我的工作是卸载xcode 7,只是保持我的系统xcode 8测试版。清空垃圾,重置模拟器并运行。我也重新启动了我的电脑。

执行以下步骤后,模拟器可以保存到UserDefaults。

+0

你可以请抢我的问题https://stackoverflow.com/questions/44667335/how-to-pass-prefs-value-data-from-view-controller内部表格视图单元格与? –

在这里完美的工作与此..!

let dict:[String:String] = ["key":"Hello"] 
    UserDefaults.standard.set(dict, forKey: "dict") 
    let result = UserDefaults.standard.value(forKey: "dict") 
    print(result!) 
    // Output -> { key:hello;} 

这是无证,但是,已知的问题,NSUserDefaults的/ UserDefualts不会在iOS的10模拟器工作,如果iOS的8/9模拟器先前已运行。

重新启动Mac并直接进入XCode 8,iOS 10模拟器将解决此问题。

参见:Why won't my app run in XCode 8 beta (8S128d)

对于斯威夫特3

UserDefaults.standard.setValue(token, forKey: "user_auth_token") 
print("\(UserDefaults.standard.value(forKey: "user_auth_token")!)") 
+0

谢谢。这帮了我。 –

+0

在xcode 8.2.1中使用它我得到零作为结果... –

+0

@Jan,你可以请抢我的问题兄弟https://stackoverflow.com/questions/44667335/how-to-pass-prefs-value -data-from-view-controller-to-inside-table-view-cell-with? –