Swift 2.0中的动态可选属性

Cod*_*ver 7 realm optional ios swift2

在Swift中看过这篇文章可选的动态属性,但是我不想把它包装成一个NSObject.这只是关于Realm数据库我没有必要的nil属性,但我认为这是一个很好的方式来建模我的数据库.在Realm文档中可以找到https://realm.io/docs/swift/latest/,它表示支持选项.这是我的

dynamic var complete: Bool? = nil
Run Code Online (Sandbox Code Playgroud)

这是我的

错误

Property cannot be marked dynamic because its type cannot be represented in Objective-C
Run Code Online (Sandbox Code Playgroud)

我知道这是与上面的帖子相同的代码和错误,但我很好奇,如果Realm文档说它支持它,他们还有另一种解决方法吗?

Edm*_*man 14

支持的类型可选属性的文档.

String,NSDate,NSData和对象属性可以是可选的.存储可选数字是使用RealmOptional.

RealmOptional支持Int,Float,Double,Bool,和所有的大小版本Int(Int8,Int16,Int32,Int64).

因此String,使用标准swift语法可以很好地支持NSDate,NSDataObject类型的选项.

对于其他完成的数字类型(例如Bool)RealmOptional.然后使用此RealmOptional类型的变量访问其value属性,该属性是可选的,表示您的基础值.

// definition (defined with let)
let complete = RealmOptional<Bool>()  // defaults to nil
// usage
complete.value = false  // set non-nil value
...
complete.value = nil    // set to nil again
Run Code Online (Sandbox Code Playgroud)

  • 你需要改变`let complete:RealmOptional <Bool>()`to to let complete = RealmOptional <Bool>()` (2认同)