我刚刚将一个项目更新到 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 文档中的所有示例,您将看到所有字段都声明为 @objc
和 dynamic
。如果您因此如下更改定义,问题应该解决:-
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/