iOS Playground中的NSUserDefaults

Dan*_*iel 9 xcode nsuserdefaults ios swift swift-playground

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")
Run Code Online (Sandbox Code Playgroud)

在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")
Run Code Online (Sandbox Code Playgroud)

知道为什么会这样吗?错误?

The*_*Art 7

这不是一个真正的错误...... NSUserDefaults与iOS沙箱环境有关.游乐场不在这种环境中运行.因此,为什么您将无法将文件写入磁盘.如果您在通过模拟器或设备运行时在应用程序中运行此代码,则您将可以访问沙箱环境,NSUserDefaults将返回正确的引用.我确实看到我在游乐场得到了一个适当的参考,并且可以设置和获取值,所以这里必须有其他东西.由于性质原因,我不会依赖于这种方式来测试这种类型的功能.

请注意我同步商店时会发生什么.

例

由于没有任何东西可以持续存在,因此该值变为零.