J'ai 2 classs: Compagnie et employé . Les deux héritent de la class Realm Object .
class Company:Object { var name:Ssortingng = "" var employee:Employee? override static func primaryKey() -> Ssortingng? { return "name" } } class Employee:Object { var name:Ssortingng = "" var age:Int = 0 override static func primaryKey() -> Ssortingng? { return "name" } }
Remplir les objects
var emp = Employee() emp.name = "Sachin" emp.age = 35 var comp = Company() comp.name = "BCCI" comp.employee = emp println("Before: \(comp.employee)") var realm = Realm() realm.write { println("Before Add: \(comp.employee)") realm.add(comp, update: true) println("In Block: \(comp.employee)") } println("After: \(comp.employee)")
RÉSULTAT:
Avant: Employé {name = Sachin; âge = 35; }
Avant d'append: Employé {name = Sachin; âge = 35; }
En bloc: néant
Après: néant
- Swift 3: Observateur de la propriété pour singleton
- Ajout de RealmSwift en tant que sous-projet: Modules requirejs manquants: 'Realm.Private', 'Realm'
- Royaume: Résultats <T> als List <T>
- Renvoie des valeurs uniques / distinctes avec une requête Realm
- Patron de design pour la database de domaine Swift 3.1 – Singleton
QUESTION: Pourquoi la propriété employee de l'object Company est-elle nulle après l'opération realm.add()
? Des pensées?
Pour toutes les propriétés Realm Swift (sauf List
), vous devez déclarer les propriétés comme dynamic
. Changer les définitions de votre model à la suivante devrait aider!
class Company:Object { dynamic var name:Ssortingng = "" dynamic var employee:Employee? override static func primaryKey() -> Ssortingng? { return "name" } } class Employee:Object { dynamic var name:Ssortingng = "" dynamic var age:Int = 0 override static func primaryKey() -> Ssortingng? { return "name" } }