swift - 我收到此错误“尝试将非属性列表对象设置为 NSUserDefaults”
问题描述
这是我收到的完整错误消息:
作为NSUserDefaults/CFPreferences
键的值Login_Data
2019-04-02 09:44:56.191207+0530 升级 [238:4101] *** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“尝试插入非属性列表对象
这是我的代码:
let data = response.result.value as! NSDictionary
print(data)
if data["error-code"] != nil {
if data.object(forKey: "error-code")as! String == "\(200)"
{
let arrTimer = ((data.object(forKey: "data") as! NSDictionary).object(forKey: "timers") as! NSArray).mutableCopy() as! NSMutableArray
UserDefaults.standard.set(arrTimer , forKey: "ArrayTimer")
UserDefaults.standard.set((data.object(forKey: "data") as! NSDictionary), forKey: "Login_Data")
当我从后端更改用户电子邮件时,我得到了这个。对于新用户来说,它工作正常。我希望这是足够的代码让您了解我正在尝试做什么。
解决方案
看起来问题是字典具有 NSNull 或 nil 值,并且尝试将其存储在 UserDefaults 中不起作用。该库可能应该使用 NSKeyedArchiver 来解决这个问题。将字典转换为数据,然后将其保存在 UserDefaults 中。
推荐阅读
- php - how to solve header location warning wordpress
- haskell - Compile Haskell programs to LLVM IR
- jira - 如何在 JIRA 中将发布设置为“已发布”
- android - 如何使用改造从 GET url 获取响应
- javascript - Is it necessary to wrap a promise in a function?
- android - Adding Name and Image at the bottom of Opentok Publisher's Stream and It should be visible on the Subscriber's end by default
- reactjs - How to set TextField to empty string?
- r - Convert dates from XLS into R
- discord - How to mention mentioned users in a message?
- css - 网页无响应,文字被截断