iOS Playgrounds 似乎有一个奇怪的问题,NSUserDefaults
总是返回nil
而不是实际值。
在 iOS Playground 中,最后一行错误地返回 nil
。
import UIKit
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject("This is a test", forKey: "name")
let readString = defaults.objectForKey("name")
在 OSX Playground 中,最后一行正确返回“This is a test”。
import Cocoa
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject("This is a test", forKey: "name")
let readString = defaults.objectForKey("name")
知道这是为什么吗?错误?
最佳答案
那不是真正的错误..... NSUserDefaults 与 iOS 沙箱环境相关联。 Playgrounds 不在此环境中运行。因此,为什么您将无法将文件写入磁盘。如果您在通过模拟器或设备运行时在应用程序中运行此代码,您将有权访问沙箱环境并且 NSUserDefaults 将返回一个正确的引用。我确实看到我在 Playground 上得到了适当的引用并且可以设置和获取值,所以这里必须有其他事情发生。由于性质原因,我只是不会依赖这种方法来测试此类功能。
注意同步商店时发生的情况。
由于没有什么可坚持的事实,该值变为 nil。
关于ios - iOS Playground 中的 NSUserDefaults,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31210175/