iOS Swift 将 Realm 对象存储到 UserDefaults.standard

标签 ios swift3 realm nsuserdefaults

这是我的 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;
}

我需要将此 Realm 对象存储到 UserDefault.standard 并在另一个页面中获取值。这是我的 UserDefults 代码:

let userDefaults = UserDefaults.standard
userDefaults.set(filteredtotalContactArray[indexPath.row], forKey: "SelectedPractice")
userDefaults.synchronize()

filteredtotalContactArray[indexPath.row] 等于我之前指定为 Realm 对象的值。但我收到错误为

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Attempt to insert non-property list object 

最佳答案

您需要为 Realm 模型的 NSCoding 提供一致性方法,以便能够将它们保存到 UserDefaults

但是,鉴于您已经在应用中使用 Realm,我鼓励您使用 Realm 来持久化 Realm 模型。

关于iOS Swift 将 Realm 对象存储到 UserDefaults.standard,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43273751/

相关文章:

objective-c - 有没有办法排除某些文件提交到 iOS 应用商店

ios - 如何获取多个分段上传任务的上传进度

swift - 如何在我的类(class)上调用 objectForPrimaryKey

realm - realm.io 数据库是否支持多列索引或排序索引?

ios - 删除 Realm 对象中的属性

ios - 从 Swift 类访问 Objective-c 基类的实例变量

ios - 如何在文本字段上双击键盘

android - Cordova PhoneGap 的局限性

ios - 使用带有 iOS swift 3 的图表库的饼图

swift - 在 Swift 3 中获取 SKSpriteNode 的文件名