iOS Swift 将领域对象存储到 UserDefaults.standard
iOS Swift Storing Realm Object to UserDefaults.standard
这是我的领域对象:
PracticeAreaEntity {
id = 0;
c_id = 21871;
c_number = C.C/1/2016;
c_title = Title Here;
date = 2017-04-07T00:00:00.000Z;
description2 = ;
object = {"id":205039,"c_id":21871,"name":"07-04-2017","s_time":"2017-04-07T00:00:00.000Z","e_time":"2017-04-08T00:00:00.000Z","creator":"system","created_by_id":null,"description":null,"c_at":"2017-03-26T00:11:52.134Z","u_at":"2017-04-07T01:00:27.396Z","judge":null,"phearing":null,"google_event_id":null,"is_completed":false,"business":null,"last_notified":"2017-04-07T01:00:27.382Z","ng_date":null,"b_date":null,"b_d_available":false};
p_id = 205039;
subject = 07-04-2017;
type = Event;
}
我需要将这个领域对象存储到 UserDefault.standard 并在另一个页面中取回值。这是我的 UserDefults 代码:
let userDefaults = UserDefaults.standard
userDefaults.set(filteredtotalContactArray[indexPath.row], forKey: "SelectedPractice")
userDefaults.synchronize()
filteredtotalContactArray[indexPath.row] 等于我之前指定为领域对象的值。但是我收到错误
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Attempt to insert non-property list object
您需要为您的 Realm 模型提供 NSCoding
的一致性方法,以便能够将它们持久化到 UserDefaults
。
但是,我鼓励您使用 Realm 来持久化 Realm 模型,因为您已经在您的应用中使用了 Realm。
这是我的领域对象:
PracticeAreaEntity {
id = 0;
c_id = 21871;
c_number = C.C/1/2016;
c_title = Title Here;
date = 2017-04-07T00:00:00.000Z;
description2 = ;
object = {"id":205039,"c_id":21871,"name":"07-04-2017","s_time":"2017-04-07T00:00:00.000Z","e_time":"2017-04-08T00:00:00.000Z","creator":"system","created_by_id":null,"description":null,"c_at":"2017-03-26T00:11:52.134Z","u_at":"2017-04-07T01:00:27.396Z","judge":null,"phearing":null,"google_event_id":null,"is_completed":false,"business":null,"last_notified":"2017-04-07T01:00:27.382Z","ng_date":null,"b_date":null,"b_d_available":false};
p_id = 205039;
subject = 07-04-2017;
type = Event;
}
我需要将这个领域对象存储到 UserDefault.standard 并在另一个页面中取回值。这是我的 UserDefults 代码:
let userDefaults = UserDefaults.standard
userDefaults.set(filteredtotalContactArray[indexPath.row], forKey: "SelectedPractice")
userDefaults.synchronize()
filteredtotalContactArray[indexPath.row] 等于我之前指定为领域对象的值。但是我收到错误
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Attempt to insert non-property list object
您需要为您的 Realm 模型提供 NSCoding
的一致性方法,以便能够将它们持久化到 UserDefaults
。
但是,我鼓励您使用 Realm 来持久化 Realm 模型,因为您已经在您的应用中使用了 Realm。