斯威夫特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)) 
      } 

     } 
+0

有什么异常的原因是什么?考虑到在很多情况下,Swift 3中的字典是'[String:Any]'。 – vadian

很难只用那个片段回答。我想下面的行返回一个零值,导致崩溃的更晚的线:以下

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") 
}