首页 > 解决方案 > 我收到此错误“尝试将非属性列表对象设置为 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")

当我从后端更改用户电子邮件时,我得到了这个。对于新用户来说,它工作正常。我希望这是足够的代码让您了解我正在尝试做什么。

标签: swift

解决方案


看起来问题是字典具有 NSNull 或 nil 值,并且尝试将其存储在 UserDefaults 中不起作用。该库可能应该使用 NSKeyedArchiver 来解决这个问题。将字典转换为数据,然后将其保存在 UserDefaults 中。


推荐阅读