我刚刚将项目更新为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是否有任何更改会导致这些错误?
答案 0 :(得分:0)
如果遵循Realm文档中的所有示例,则会看到所有字段都声明为@objc
和dynamic
。因此,如果您按以下方式更改定义,则问题应解决:-
class Subscription : Object {
@objc dynamic var expiryDate = Date()
@objc dynamic var productId = Product.SubscriptionID
}