RealmでOptional Intを使用しようとしていますが、古いエラーが発生しています。
コード
dynamic var reps: Int? = nil
エラー
'Property cannot be marked dynamic because its type cannot be represented in Objective-C'
XCode 7.1でRealm 0.96.1を使用しています
Realmのドキュメントでは、Int
はOptional
としてサポートされていませんが、 https://Twitter.com/realm/status/656621989583548416 であると理解しています。それはRealmのTwitterからですので、私は混乱しています。 Optional Int
サポートされているか、まだサポートされていませんか?
Realmドキュメントから:
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
)。
UPDATE:
Tweet でRealmが言及したOptional Intsは、RealmOptional
のサイズ付きバージョンでOptional数値を実装するInt
方法のバグ修正に関するものでした。
According Realmのメンバーには、Realmオブジェクトにオプションの数値を含める場合は、RealmOptional
を使用する必要があります。他のオプションタイプのように単純に使用することはできません。
そう dynamic var reps: Int?
動作しないでしょう。