例如,我有像这样的模型class
class User: Objects {
var firstName: String?
var lastName: String?
var friends: List<User>?
}
和Dictionary
喜欢这个
{
firstName : "Mohshin"
lastName : "Shah"
friends : [
{
firstName : "Friend 1"
lastName : "abc"
},
{
firstName : "Friend 2"
lastName : "def"
}
]
}
我想使用字典制作一个User对象。我曾尝试过Realm&#39; init(value: Any)
方法,它只创建具有平面值的用户,但不启动朋友。
答案 0 :(得分:7)
您遇到这些问题的原因是因为List<User>
对象必须在使用前初始化。 Realm建议将List
和RealmOptional
个对象声明为let
,然后在模型内部初始化它们。
除此之外,您还需要使用dynamic var
属性声明其他属性,以使属性成为底层数据库的访问者。
有关我在文档的Property Attributes和Supported Types部分中提到的内容的更多信息。尽管如此,我建议您将模型更改为以下内容:
import RealmSwift
class User: Object {
dynamic var firstName: String?
dynamic var lastName: String?
let friends = List<User>()
}
我希望这会有所帮助,如果您需要更多帮助,请告诉我。
答案 1 :(得分:0)
尝试这样的事情
func getRealm(dictionary:NSDictionary) {
let first = dictionary.object(forKey: "first_name")
let last = dictionary.object(forKey: "first_name")
var friends = Array<Any>()
for dict in dictionary.object(forKey: "friends") {
var user = User()
user.getRealm(dict)
friends.append(user)
}
}
在你的领域模型类中添加这样的方法