ios - 更新后 RealmSwift 崩溃并出现错误 "Invalid property name"

标签 ios swift realm ios12

我刚刚将一个项目更新到 Swift 5.0,并将 Realm 和 RealmSwift 从 2.8.3 更新到 3.14.2。

该项目之前运行良好,但现在在以下简单示例上崩溃了:

定义:

class Subscription : Object {

    dynamic var expiryDate = Date()
    dynamic var productId = Product.SubscriptionID
}

实现:

let query = NSPredicate(format:"productId == %@", productId)
let subs = Array(realm.objects(Subscription.self).filter(query))

错误

Terminating app due to uncaught exception 'Invalid property name', reason: 'Property 'productId' not found in object of type 'Subscription''

RealmSwift 有什么改变会导致这些错误吗?

最佳答案

如果您遵循 Realm 文档中的所有示例,您将看到所有字段都声明为 @objcdynamic。如果您因此如下更改定义,问题应该解决:-

class Subscription : Object {

  @objc dynamic var expiryDate = Date()
  @objc dynamic var productId = Product.SubscriptionID
}

关于ios - 更新后 RealmSwift 崩溃并出现错误 "Invalid property name",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56367418/

相关文章:

ios - Swift - 只允许在 UITableViewCell 中选中一个复选框

swift - 添加游戏中心排行榜

swift - Realm 导致程序出现意外行为。 (OS X 和 Swift)

ios - iPhone 通话记录和应用商店

ios - Meteor - 如何检测应用程序是否已打开?

ios - Swift - 如何自动大写 UIButton 的标签?

ios - 使用 NSUserDefaults 从 NSArray 中保存和检索 - Swift

ios - 构建预填充 Realm 数据库的最佳方式

ios - 如何正确使用 createOrUpdateInRealm?

ios - RLMArray 中对象的逆序