Ответ 1
Из документов Realm:
NSDate
String
, NSDate
и NSData
могут быть объявлены как необязательные или необязательные с использованием стандартного синтаксиса Swift.
Дополнительные числовые типы объявляются с использованием RealmOptional
:
class Person: Object {
// Optional string property, defaulting to nil
dynamic var name: String? = nil
// Optional int property, defaulting to nil
// RealmOptional properties should always be declared with 'let',
// as assigning to them directly will not work as desired
let age = RealmOptional<Int>()
}
let realm = try! Realm()
try! realm.write() {
var person = realm.create(Person.self, value: ["Jane", 27])
// Reading from or modifying a 'RealmOptional' is done via the 'value' property
person.age.value = 28
}
RealmOptional
поддерживает Int
, Float
, Double
, Bool
и все версии Int
(Int8
, Int16
, Int32
, Int64
).
ОБНОВИТЬ:
Необязательные Инты, которые были упомянуты в Tweet от Realm, RealmOptional
только исправления для RealmOptional
способа реализации необязательного числового значения с размерами версий Int
По словам ребята из Realm, вам все равно придется использовать RealmOptional
если вы хотите иметь дополнительные числовые значения в объекте Realm. Вы не можете просто использовать его, как и другие необязательные типы.
Итак, dynamic var reps: Int?
не будет работать.