我希望通过词典实现Realm inverse-relationships对创作的支持。
但断言失败了:字典中的狗没有创建。
foo %>%
group_by(ID, Day) %>%
filter(n_distinct(Period)>1) %>%
mutate_if(is.factor, as.character) %>%
filter(Start[1]==End[n()] & Start[n()] == End[1])
# ID Day Period Start End
# <int> <int> <chr> <chr> <chr>
#1 54 1 morning Union Square Chinatown
#2 54 1 evening Chinatown Union Square
#3 88 2 morning Grammercy Battery Park
#4 88 2 evening Battery Park Grammercy
注意:RealmSwift(2.1.2)
答案 0 :(得分:1)
LinkingObjects
是一种查找机制,而不是磁盘存储的实际表示。因此,无法通过写入事务将数据插入其中。
但是,如果您重新设计架构,Person
有List
个Dog
个对象,Dog
本身定义LinkingObjects
来确定其父级,那么在同一个字典中插入Person
和Dog
的代码应该有效。 :)
class Dog: Object {
dynamic var name: String?
let owners = LinkingObjects(fromType: Person.self, property: "dogs")
}
class Person: Object {
dynamic var name: String?
let dogs = List<Dog>()
}
答案 1 :(得分:0)
我找到的解决方法是分别创建每个实体。
try? realm.write {
person = realm.create(Person.self, value: sampleValue, update: false)
let dogsValue = sampleValue["dogs"] as? [[String: Any]]
dogsValue?.forEach {
var dogValue = $0
dogValue["owner"] = person
realm.create(Dog.self, value: dogValue, update: false)
}
}
我希望有一些更简单的方法。