由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“尝试插入非属性列表对象
Posted
技术标签:
【中文标题】由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“尝试插入非属性列表对象【英文标题】:Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Attempt to insert non-property list object 【发布时间】:2019-11-03 22:22:56 【问题描述】:我尝试了互联网上的所有建议。
我在这里尝试将字典数组保存在用户默认值中。
let tokenInfo: [String: Any] = ["data": response?.data as Any, "startDate": response?.startDate as Any, "endDate": response?.endDate as Any]
if error == nil
userDefModel().token = tokenInfo
在 userDefModel 类中
var token: [String: Any]?
set
UserDefaults.standard.set(newValue, forKey: "token")
get
return UserDefaults.standard.value(forKey: "token") as? [String: Any] ?? [:]
【问题讨论】:
显示您尝试存储的数据。 样本数据数据:"agfguyorhgvqiguahia9guhhdivisaguh89o3rujgbvu903ugepvy3ploeuvap0-3gv" startDate = "2019-10-04 18:20:51 +0000"; endDate = "2019-10-05 18:20:51 +0000"; 祝你好运。我不会在 UserDefaults 中放置用于命中端点的东西。 【参考方案1】:由于您的字典项导致此错误,请在将字典设置为令牌之前尝试打印字典。
我认为问题可能出在数据中,您需要先转换它,然后再将其存储到字典中。
NSString(data: response!.data, encoding: NSUTF8StringEncoding)
另一种解决方案:
// Save
UserDefaults.standard.set(try? PropertyListEncoder().encode(value), forKey: key)
// Retrieve
if let data = UserDefaults.standard.value(forKey: key) as? Data
userData = try? PropertyListDecoder().decode(Profile.self, from: data)
【讨论】:
以上是关于由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“尝试插入非属性列表对象的主要内容,如果未能解决你的问题,请参考以下文章
由于未捕获的异常而终止应用程序 [UIImageView _isResizable]
由于未捕获的异常“NSInternalInconsistencyException”错误而终止应用程序