我正在尝试将嵌套字典保存到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))
}
}
答案 0 :(得分:0)
仅使用该片段很难回答。我认为以下行返回一个nil值并导致后一行崩溃:
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")
}