Сбой RealmSwift с ошибкой «Неверное имя свойства» после обновления - PullRequest
0 голосов
/ 29 мая 2019

Я только что обновил проект до 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 голосов
/ 01 июня 2019

Если вы будете следовать всем примерам в документации Realm, вы увидите, что все поля объявлены как @objc и dynamic.Поэтому, если вы измените свои определения, как показано ниже, проблема должна решить: -

class Subscription : Object {

  @objc dynamic var expiryDate = Date()
  @objc dynamic var productId = Product.SubscriptionID
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...