Я начинаю работать с Realm на iOS 8 или выше и смотрю документацию в Realm. Я заметил, что перед всеми свойствами есть ключевое слово dynamic
. Это требуется в Царстве? Я прочитал документацию Apple по ключевому слову, которое можно найти здесь. https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/AdoptingCocoaDesignPatterns.html
Динамические свойства в области
Ответ 1
Да, это необходимо для нормальных var
свойств. Из realm docs.
Для свойств модели Realm необходим атрибут
dynamic var
, чтобы эти свойства стали доступными для базовых данных базы данных.Есть два исключения:
List
иRealmOptional
свойства не могут быть объявлены динамическими, поскольку общие свойства не могут быть представлены в среде выполнения Objective-C, которая используется для динамической отправки динамических свойств и всегда должна быть объявлен с помощьюlet
.
Динамическое ключевое слово - это то, что позволяет Realm получать уведомления об изменениях в переменных модели и, следовательно, отражать их в базе данных.
Ответ 2
В Swift 3 мы объявили нашу собственность такой
dynamic var Name : String = ""
В Swift 4 мы объявили нашу собственность вот так
@objc dynamic var Name : String = ""