使用EVReflection进行转换时,Realm对象为空

时间:2017-09-11 13:39:19

标签: ios json swift realm

将Realm对象转换为jsonString时出现问题。我在网上搜索但无法找到明确的答案。我猜猜可能是什么问题......

我有一个用户类:

import RealmSwift
import EVReflection

public class User: Object, EVReflectable, IModel {
    dynamic var id: String = UUID().uuidString

    dynamic var createdAt: String = ""
    dynamic var lastUpdate: String = ""

    dynamic var firstName: String = ""
    dynamic var lastName: String = ""

    dynamic var email: String = ""
}

当我尝试从我的领域数据库加载用户时,如下所示:

let users = realm.objects(User.self).filter("id = %@", userId)
let user = users.first

我可以毫无问题地访问该对象。我看到了存储在对象中的所有数据。

如果我想将数据转换为JSON字符串并输出它,我会得到一个空的JSON对象:

print(user.toJsonString())

./输出

{
   "id":"64EA49AA-333C-4C76-B92C-464EFE1D9E10",
   "createdAt":"",
   "lastUpdate":"",
   "firstName":"",
   "lastName":"",
   "email":""
}

这是一个bug还是与Realm相关的行为。因为我能找到解释这种行为的唯一解释就是这个问题:Github Realm Issue

如果这是由Realm引起的,有没有人能解决我们如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

在EVReflecdtion中,Realm Object现在默认实现EVCustomReflectable协议,以便它能够获取领域属性。请更新到最新版本。请注意,它现在也将使用Realm 3。

答案 1 :(得分:0)

听起来这可能是EVReflection库实现的问题。我在使用ObjectMapper和Realm Lists时遇到了一个问题,让它们很好地协同工作很有挑战性。最好逐步完成toJsonString()实施,看看你是否能弄清楚那里发生了什么。

当然这是假设您实际在某处设置了属性(从上面的代码片段中不清楚)