String
,NSDate
和NSData
属性可以使用标准Swift语法声明为可选或非可选.使用可选的数字类型声明RealmOptional
.
为什么数字类型使用非标准RealmOptional
而不是Swift的内置可选语法?
bda*_*ash 12
Realm模型类自动为访问底层数据库数据的持久属性实现getter和setter.为了提供这些getter和setter,必须使用dynamic
修饰符声明属性.此修饰符要求Swift通过getter和setter动态调度对属性的访问,而不是在编译时直接访问该成员.该dynamic
修正配有显著的局限性:它仅支持可以在Objective-C表示的类型.这是因为Swift的动态调度建立在Objective-C运行时之上.正是这种限制阻止Int?
了Realm直接支持.
鉴于此限制,您可能想知道如何String?
,NSData?
并且NSDate?
得到支持.答案是,他们有在Objective-C,即天然等同物nullable NSString *
,nullable NSData *
和nullable NSDate *
.Swift的数字类型不存在这样的等价物.
归档时间: |
|
查看次数: |
1213 次 |
最近记录: |