我按照本教程为 Realm 对象创建协议(protocol):
https://medium.com/@gonzalezreal/using-realm-with-value-types-b69947741e8b
我有:
public protocol Persistable {
associatedtype PropertyValue: PropertyValueType
associatedtype ManagedObject: RealmSwift.Object
associatedtype Query: QueryType
init(managedObject: ManagedObject)
func getManagedObject() -> ManagedObject
}
public typealias PropertyValuePair = (name: String, value: Any)
public protocol PropertyValueType {
var propertyValuePair: PropertyValuePair { get }
}
public protocol QueryType {
var predicate: NSPredicate? { get }
var sortDescriptors: [SortDescriptor] { get }
}
我想创建如下方法:
public func delete<T: Persistable>(_ value: T) {
realm.delete(value)
}
尝试时
realm.delete(value.getManagedObject())
我从 Realm 收到错误“只能从其所属的 Realm 中删除对象。”
使用我的协议(protocol)删除 objc。
最佳答案
我也遇到了同样的问题。我解决这个问题的方法是确保我提供给 Realm 来删除的对象是直接从 Realm 获取的。它似乎不喜欢“getManagedObject”创建的映射对象。
请参阅此问题了解更多信息:Can only delete an object from the Realm it belongs to
关于ios - 具有删除对象的值类型的 Realm ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47649130/