Sto iniziando a lavorare con Realm su iOS 8 o versioni successive e guardando la documentazione in Realm. Ho notato che tutte le proprietà hanno la parola chiave dynamic
davanti a loro. È richiesto nel regno? Ho letto la documentazione di Apple sulla parola chiave che può essere trovata qui. https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/AdoptingCocoaDesignPatterns.htmlProprietà dinamiche nel Regno
risposta
Sì, è obbligatorio per le normali proprietà var
. Dal realm docs.
Le proprietà del modello di reame necessitano dell'attributo
dynamic var
affinché tali proprietà possano diventare accessorie per i dati del database sottostante.Ci sono due eccezioni a questo:
List
eRealmOptional
proprietà non possono essere dichiarati dinamica perché le proprietà generiche non possono essere rappresentati nel runtime Objective-C, che viene utilizzato per la spedizione dinamica delle proprietà dinamiche, e dovrebbero sempre essere dichiarati conlet
.
Il dinamica parola chiave è ciò che permette di Realm per essere notificato di cambiamenti per modellare le variabili, e di conseguenza li riflettono al database.
In Swift 3, abbiamo dichiarato la nostra proprietà come questa
dynamic var Name : String = ""
a Swift 4, abbiamo dichiarato la nostra proprietà come questa
@objc dynamic var Name : String = ""
Ho anche fare piccolo video su questo errore. Se non capisci sulla codifica dell'arte. Guarda il video