Ich benutze Realm in meinem schnellen Projekt.Modellstatus zwischen viewControllern mit Realm speichern - es bricht die Beziehung
Hier sind meine Objekte, Essen und Reaktion - mit einer Abbildung eines zu viele:
enum DishType: String{
case Breakfast
case Second_breakfast
case Brunch
case Elevenses
case Lunch
case Tea
case Dinner
case Supper
case Snack
}
class Meal : Object{
dynamic var date: NSDate = NSDate()
dynamic var dishType = DishType.Breakfast.rawValue
var dishTypeEnum: DishType{
get{
return DishType(rawValue: dishType)!
}
set{
dishType = newValue.rawValue
}
}
dynamic var foodItems: String = ""
var reactions = List<Reaction>()
}
enum Category: String{
case Apetit
case Energy
case Emotion
}
enum Type: String{
case Positive
case Negative
}
class Reaction: Object{
dynamic var category = Category.Apetit.rawValue
dynamic var text: String?
dynamic var selected: Bool = false
dynamic var type = Type.Positive.rawValue
.....
}
I-Zustand von einem Viewcontroller zum anderen sparen müssen. Ich wähle einige Reaktionen aus, die ich sehen muss, wenn ich zum Reaktionsbildschirm zurückkehre.
Ich dachte in Realm zu speichern, aber ich muss auch alle Reaktionen Zustand löschen, wenn eine neue Reihe von Daten eingeben. Beim Löschen von Reaktion scheint es, dass es auch die Beziehung bricht. Ich habe Meal-Objekte gespeichert (die auch eine Beziehung mit Reaction haben).
Ich weiß nicht, wie man zwischen Reaktionen, die den Zustand anzeigen, und denen, die in Beziehung stehen, von einer gespeicherten Mahlzeit unterscheidet.
Ich dachte sparen Reaktionen für den Staat, nur in NSUserDefaults. Aber so werde ich beide Frameworks kombinieren.
Was denken Sie? Wie retten Sie den Staat?
Ich mag deine elegante Lösung. Wann sollte ich jedoch alle Reactions zu Realm hinzufügen, damit ich diese für meinen Viewcontroller bereithalten kann? –
Woher kommen sie? Ich denke, sie sollten schon beim ersten Start der App da sein. Sie könnten ein separates Ziel erstellen, das die Realm-Datenbank einrichtet und alle Reaktionen erstellt und diese Datenbank zurück in Ihr Projekt kopiert. Sie können dann die .realm-Datei zu Ihrem Projekt hinzufügen und beim ersten Start sicherstellen, dass diese Datei aus dem App-Bundle in das Benutzerdatenverzeichnis kopiert wird. ('Realm.Configuration.defaultConfiguration.path') – marius
Ok, ich versuche deine Vorschläge. Vielen Dank! –