【发布时间】:2016-05-24 23:56:57
【问题描述】:
关于将 Realm 与现有项目集成的一般问题。我拥有的另一个框架有一个 User 类,它有很多属性。无论如何,Realm 是否可以仅存储此对象而无需创建全新的 Realm 模型并将值从 User 的属性复制到新的 Realm 模型?
我可以这样做吗?
class RealmUser: Object {
dynamic user: User?
}
即使用户不是领域定义的模型。
谢谢。
【问题讨论】:
关于将 Realm 与现有项目集成的一般问题。我拥有的另一个框架有一个 User 类,它有很多属性。无论如何,Realm 是否可以仅存储此对象而无需创建全新的 Realm 模型并将值从 User 的属性复制到新的 Realm 模型?
我可以这样做吗?
class RealmUser: Object {
dynamic user: User?
}
即使用户不是领域定义的模型。
谢谢。
【问题讨论】:
Realm 仅支持以下属性类型:Bool、Int8、Int16、Int32、Int64、Double、Float、String、@9876543329@ 和 @98756 @。
因此,您不能简单地将 User 对象添加到领域。如果您的User 类实现了NSCoding,您可以将User 对象转换为NSData 对象并存储它,但是您将无法查询User 的属性,因此恕我直言,这不是一个实际的选择.
如果你真的想使用 Realm,我认为除了使用 User 类的所有属性创建一个 RealmUser 对象之外别无他法。您可以添加一个方便的初始化程序,使RealmUser 对象的创建更容易在您的代码库的其他部分:
class RealmUser: Object {
dynamic var userId = 0
dynamic var name = ""
...
convenience init(withUser user: User) {
self.init()
userId = user.id
name = user.name
...
}
}
这不像您的解决方案那样简短实用,但是向 Realm 添加自定义类是不可能的。
【讨论】: