ios - iOS Playground 中的 NSUserDefaults

标签 ios swift xcode nsuserdefaults 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")

在 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 上得到了适当的引用并且可以设置和获取值,所以这里必须有其他事情发生。由于性质原因,我只是不会依赖这种方法来测试此类功能。

注意同步商店时发生的情况。

Example

由于没有什么可坚持的事实,该值变为 nil。

关于ios - iOS Playground 中的 NSUserDefaults,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31210175/

相关文章:

ios - 导航栏上没有后退按钮

ios - 使用异步响应协议(protocol)

ios - 在 Swift 2.0 中,我如何使标题单元格与 tableview 单元格一起移动

ios - 我可以将 swift 版本降级到中度错误 'Module compiled with Swift x.x cannot be imported by the Swift x.x compiler' 吗?

ios - iOS 上的 Flutter NFC Manager 问题

xcode - 如何在Xcode 9上运行多个模拟器?

ios - React-Native:无法输出到 console.log()?

ios - Swift 2.0 元组模式元素标签必须是 '_'

objective-c - 在发布版本上创建自定义错误

ios - Restkit 0.20.x 路由类更改