2015-10-27 116 views

回答

11

領域模型類自動實現訪問底層數據庫數據的持久性屬性的getter和setter。爲了提供這些getter和setter,必須使用dynamic修飾符聲明您的屬性。這個修飾符讓Swift通過getters和setter動態地分配對屬性的訪問,而不是在編譯時直接訪問成員。 dynamic修飾符帶有一個重要限制:它僅支持可在Objective-C中表示的類型。這是因爲Swift的動態調度是建立在Objective-C運行時的基礎之上的。正是這個限制可以防止Realm直接支持Int?

您可能想知道如何支持String?,NSData?NSDate?考慮到此限制。答案是它們在Objective-C中有自然等價物,即nullable NSString *,nullable NSData *nullable NSDate *。 Swift的數字類型不存在這樣的等價物。

相關問題