IOS 8以降でRealmを使い始め、Realmのドキュメントを確認しています。すべてのプロパティの前にdynamic
キーワードがあることに気づきました。それはレルムで必要ですか?ここにあるキーワードに関するAppleドキュメントを読みました。 https://developer.Apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/ AdoptingCocoaDesignPatterns.html
はい、通常のvar
プロパティには必須です。 レルムドキュメント から。
レルムモデルのプロパティは、これらのプロパティが基になるデータベースデータのアクセサーになるために、
dynamic var
属性を必要とします。これには2つの例外があります。動的プロパティの動的ディスパッチに使用されるObjective-Cランタイムでは汎用プロパティを表すことができないため、
List
およびRealmOptional
プロパティを動的として宣言できません。常にlet
で宣言する必要があります。
dynamicキーワードは、モデル変数への変更をレルムに通知し、その結果、それらをデータベースに反映できるようにするものです。
Swift 3では、プロパティを次のように宣言しました
dynamic var Name : String = ""
Swift 4では、プロパティを次のように宣言しました
@objc dynamic var Name : String = ""