【发布时间】:2017-04-18 02:10:17
【问题描述】:
- 我有一个模型
- 我想将模型的值传递给其他类
-
我在 userDefault 中设置但得到错误“线程 1 信号 sigabrt”
Alamofire.request("http://mylink.com/login", method: .post, parameters: parameters, encoding: JSONEncoding.default).responseObject { (response: DataResponse<LoginResponse>) in let loginResponse: AnyObject = response.result.value! UserDefaults.standard.setValue(loginResponse, forKey: "resultLogin") }
所以我想问一下如何将我的模型值设置为用户默认值
【问题讨论】:
-
检查您的登录响应。可能是您的模型包含任何键的 nil 值。我有同样的问题,发现我的一个键的值为 nil。
-
哪一行代码会导致错误?
-
@rmaddy UserDefaults.standard.setValue(loginResponse, forKey: "resultLogin")
-
虽然与你的崩溃无关,但不要使用
setValue(forKey:)。使用set(forKey:)。而且您只能将特定的数据类型存储在UserDefaults中。请阅读UserDefaults的文档以查看值类型。提示:AnyObject不是有效类型之一。