У меня есть свойство типа List<Int>
в RealmObject
.Но я не могу сделать причину удаления этого каскада.
У меня есть свойство List<Int>()
, а затем в init
я установил в этот массив свойств несколько целых чисел.Затем я пытаюсь удалить объект и получаю следующую ошибку:
Невозможно привести значение типа '__NSCFNumber' (0x10dba87d8) к 'RLMObjectBase' (0x10b21b708).
2019-01-27 01: 10: 43.524057 + 0300 Ибица [25129: 3982818] Не удалось привести значение типа '__NSCFNumber' (0x10dba87d8) к 'RLMObjectBase' (0x10b21b708).
Вот моя реализация каскада:
func cascadeDelete(_ entity: RLMObjectBase) {
guard let entity = entity as? Object else { return }
var toBeDeleted = Set<RLMObjectBase>()
toBeDeleted.insert(entity)
while !toBeDeleted.isEmpty {
guard let element = toBeDeleted.removeFirst() as? Object,
!element.isInvalidated else { continue }
resolve(element: element, toBeDeleted: &toBeDeleted)
}
}
func resolve(element: Object, toBeDeleted: inout Set<RLMObjectBase>) {
element.objectSchema.properties.forEach {
guard let value = element.value(forKey: $0.name) else { return }
if let entity = value as? RLMObjectBase {
toBeDeleted.insert(entity)
} else if let list = value as? RealmSwift.ListBase {
for index in 0..<list._rlmArray.count {
toBeDeleted.insert(list._rlmArray.object(at: index) as! RLMObjectBase) }
}
}
delete(element)
}
Ошибка в этой строке кода:
toBeDeleted.insert(list._rlmArray.object(at: index) as! RLMObjectBase)