【问题标题】:Realm with Value Types deleting objects具有值类型的领域删除对象
【发布时间】:2017-12-05 08:29:52
【问题描述】:

我按照本教程为领域对象创建协议:

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())

从领域中得到错误“只能从它所属的领域中删除一个对象。”

使用我的协议删除 objc。

【问题讨论】:

  • 你没有使用Realm的任何实例?
  • func delete 与 Realm 实例在 calss 中,实例名称为 'realm'
  • 您是否先将对象添加到领域,然后再尝试删除它?是同一个境界吗?错误消息并没有什么神秘之处。您没有显示足够的代码让我们判断您是否正确使用 Realm。

标签: ios swift database realm


【解决方案1】:

我遇到了同样的问题。我解决这个问题的方法是确保我提供给领域以删除的对象只是直接从领域中获取的。它似乎不喜欢“getManagedObject”制作的映射对象。

有关更多信息,请参阅此问题:Can only delete an object from the Realm it belongs to

【讨论】:

    猜你喜欢
    • 2022-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多