web-dev-qa-db-ja.com

レルムの動的プロパティ

IOS 8以降でRealmを使い始め、Realmのドキュメントを確認しています。すべてのプロパティの前にdynamicキーワードがあることに気づきました。それはレルムで必要ですか?ここにあるキーワードに関するAppleドキュメントを読みました。 https://developer.Apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/ AdoptingCocoaDesignPatterns.html

22
Cody Weaver

はい、通常のvarプロパティには必須です。 レルムドキュメント から。

レルムモデルのプロパティは、これらのプロパティが基になるデータベースデータのアクセサーになるために、dynamic var属性を必要とします。

これには2つの例外があります。動的プロパティの動的ディスパッチに使用されるObjective-Cランタイムでは汎用プロパティを表すことができないため、ListおよびRealmOptionalプロパティを動的として宣言できません。常にletで宣言する必要があります。

dynamicキーワードは、モデル変数への変更をレルムに通知し、その結果、それらをデータベースに反映できるようにするものです。

36
Edman

Swift 3では、プロパティを次のように宣言しました

dynamic var Name : String = ""

Swift 4では、プロパティを次のように宣言しました

@objc dynamic var Name : String = ""
1
Khawar Islam