2015-10-19 7 views
7

Ho visto questo post Optional dynamic properties in Swift ma non voglio dover concludere la lezione in un NSObject. Questo riguarda solo il database di Realm Non devo avere proprietà nil ma sarebbe un buon modo per modellare il mio database. Nella documentazione di Realm che può essere trovata qui https://realm.io/docs/swift/latest/ si dice che sono supportate le opzioni. Ecco il mioProprietà facoltative dinamiche in Swift 2.0

Codice

dynamic var complete: Bool? = nil 

ed è qui il mio

errore

Property cannot be marked dynamic because its type cannot be represented in Objective-C 

So che questo è lo stesso codice e l'errore come il post di cui sopra, ma io sono solo curioso di sapere se la documentazione di Ream lo supporta, hanno un altro lavoro in giro?

risposta

11

Dai documenti su supported types e optional properties.

String, NSDate, NSData e oggetti proprietà possono essere facoltativi. La memorizzazione dei numeri opzionali viene eseguita utilizzando RealmOptional.

RealmOptional supporta Int, Float, Double, Bool, e tutte le versioni di dimensioni di Int (Int8, Int16, Int32, Int64).

Così optionals sono supportati per String, NSDate, NSData e Object tipi piacevolmente con la sintassi rapida standard.

Per altri tipi numerici (ad esempio Bool) eseguito con RealmOptional. Quindi per utilizzare una variabile di questo tipo RealmOptional accedi alla sua proprietà value, che è un optional che rappresenta il valore sottostante.

// 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 
+2

è necessario modificare 'lasciare completa: RealmOptional ()' a 'diamo completa = RealmOptional ()' –