2017-03-17 53 views
0

我試圖挽救一個嵌套的字典爲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

回答

0

很難只用那個片段回答。我想下面的行返回一個零值,導致崩潰的更晚的線:以下

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