无法从 NSUserDefaults 获取字典作为保存格式

Posted

技术标签:

【中文标题】无法从 NSUserDefaults 获取字典作为保存格式【英文标题】:Cannot get the dictionary from NSUserDefaults as saved format 【发布时间】:2015-09-29 15:48:49 【问题描述】:

我想从NSUserDefaults 获取一个快速字典作为我之前保存的格式。我已经将字典保存为[String:String] 格式,但是当我使用dictionaryForKey(key) 方法获取字典时,我得到了[String:AnyObject]?。如何将[String:AnyObject]? 转换为[String:String] 或如何获取正确格式的字典?

保存到NSUserDefaults

var tasks: Dictionary<String,String> = [:]
let defaults = NSUserDefaults.standardUserDefaults()
let key = "key"
defaults.setObject(tasks, forKey: key)
defaults.synchronize()

NSUserDefaults获取

let defaults = NSUserDefaults.standardUserDefaults()
let key = "ananZaa"
let incomingArray = defaults.dictionaryForKey(key)

【问题讨论】:

【参考方案1】:

如果您已使用默认值注册它,因此它永远不会是 nil,只需将其向下转换为正确的类型

let defaults = NSUserDefaults.standardUserDefaults()
let key = "ananZaa"
let incomingDictionary = defaults.objectForKey(key) as! Dictionary<String,String>

【讨论】:

以上是关于无法从 NSUserDefaults 获取字典作为保存格式的主要内容,如果未能解决你的问题,请参考以下文章

从 NSUserDefaults 检索自定义对象

如何快速在 NSUserDefaults 中设置字典?

保存到 NSUserDefaults 的字典总是返回 nil

如何从命令行获取 NSUserDefaults

Objective-C:无法从 NSUserDefaults 设置 NSMutableDictionary

Swift - 将字典数组保存到 NSUserDefaults