ios - objectForKey 在 Swift 中为 NSUserDefaults 返回 nil

标签 ios swift nsuserdefaults

我使用以下代码通过 Swift 将值设置到 NSUserDefaults 中。这是我的代码:

let key = "ticker"
let currencyTickerData = [key:"USD"]
NSUserDefaults.standardUserDefaults().setObject(currencyTickerData, forKey: key)
NSUserDefaults.standardUserDefaults().synchronize()

let tickerVal : [NSString]? = (NSUserDefaults.standardUserDefaults().objectForKey(key)) as? [NSString]

print(tickerVal)

出于某种原因,tickerVal 为零。为什么是这样?据我所知,它应该返回“USD”。

最佳答案

NSUserDefaults 使用 NSDictionary 而不是 Swift 的字典类型。您可以像这样显式键入 tickerVal 作为 NSDictionary:

let key = "ticker"
let currencyTickerData: NSDictionary = [key:"USD"]
NSUserDefaults.standardUserDefaults().setObject(currencyTickerData, forKey: key)
NSUserDefaults.standardUserDefaults().synchronize()

let tickerVal = (NSUserDefaults.standardUserDefaults().objectForKey(key)) as NSDictionary

print("\(tickerVal)")

关于ios - objectForKey 在 Swift 中为 NSUserDefaults 返回 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26434333/

相关文章:

ios - Swift:无法在可变对象参数上设置属性值

ios - 如何查看 NSUserdefaults 是否为零?

ios - NSUserDefaults 只保存最后输入的数据

ios - 我应该如何从合适的选择中保存用户设置?

ios - ARKit,用于 ARSCNView 的金属着色器

objective-c - 无法将自定义 View 从 nib 加载到另一个以编程方式制作的 View 中?

ios - 容器 View 不检查滚动中的 UITableView 数据?

swift - 多部分形式(图像,参数)在 swift 中使用 Alamofire 发布请求

iOS 8 - 最初从 View 中隐藏 UITableView 的 headerView

json - 将 JSON/NSDictionary 反序列化为 Swift 对象