斯威夫特3 - 设置嵌套的字典UserDefaults - 崩溃
问题描述:
我试图挽救一个嵌套的字典为UserDefaults
但每当我试图挽救我得到一个崩溃:斯威夫特3 - 设置嵌套的字典UserDefaults - 崩溃
这是为什么崩溃?在SWIFT 2它工作得很好
的libC++ abi.dylib:与 类型的未捕获的异常终止NSException
这是我的函数:
var arrRes = [[String:AnyObject]]() //Array of dictionary
GetNewsFeed.getAllNews { (result) in
if let resData = result.arrayObject {
self.arrRes = resData as! [[String : AnyObject]]
self.defaults.set(self.arrRes, forKey: self.ARRAY_CACHE) // ERROR
self.defaults.synchronize()
print(self.defaults.dictionary(forKey: self.ARRAY_CACHE))
}
}
答
很难只用那个片段回答。我想下面的行返回一个零值,导致崩溃的更晚的线:以下
self.arrRes = resData as! [[String : AnyObject]]
使用另购的链接技术,看看是否能解决:
if let data = resData as? [[String : AnyObject]] {
self.defaults.set(data, forKey: self.ARRAY_CACHE)
} else {
debugPrint("invalid data")
}
有什么异常的原因是什么?考虑到在很多情况下,Swift 3中的字典是'[String:Any]'。 – vadian