更新后,RealmSwift崩溃,错误为“无效的属性名称”

时间:2019-05-29 19:38:30

标签: 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是否有任何更改会导致这些错误?

1 个答案:

答案 0 :(得分:0)

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

class Subscription : Object {

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