【问题标题】:How to use RLMArray in Swift with Realm for Objective-C?如何在 Swift 中使用 RLMArray 和 Realm for Objective-C?
【发布时间】:2018-05-16 08:00:55
【问题描述】:

我的应用混合了 Objective-C 和 Swift,这迫使我将 Realm 用于 Objective-C。现在,我正在 Swift 中创建一个新的 Realm 模型,其中嵌入了 RLMArray

@objcMembers class KTPRestaurant: RLMObject {
    var name: String?
    dynamic public var tables: RLMArray<KTPTable>?
}

但是,我不断收到错误消息,提示 'Property 'tables' is declared as 'id', which is not a supported RLMObject property type.。我应该如何声明RLMArray

【问题讨论】:

  • 如果你使用 Realm Objective-C,RLMObject 子类应该用 Objective-C 编写。然后将它们包含在桥头中并从 Swift 中使用它们。

标签: objective-c swift realm


【解决方案1】:

您应该使用以下语法声明您的 RLMArray 属性:

@objc dynamic var tables = RLMArray< KTPTable >(objectClassName:KTPTable.className())

请参阅 Realm 文档中的 RLMArray Properties。 如果您遇到此问题:由于未捕获的异常“RLMException”而终止应用程序。意味着您需要卸载应用并重新安装应用以更新 Realm。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-11
    相关资源
    最近更新 更多