Ich lese ein paar CoreData Tutorials und Apple-Dokumentation, aber ich habe noch nichts gefunden: wie CoreData vollständig mit einer benutzerdefinierten Klasse zu integrieren.Anpassung der benutzerdefinierten Klasse mit CoreData kompatibel
Angenommen, ich habe die benutzerdefinierte Klasse Dog
und ich habe "Include CoreData" beim Erstellen des Projekts aktiviert.
Der Hund hat ein paar Eigenschaften wie name
, legsNumber
und einige Aufzählungen wie vaccinationStatus
mit den Fällen .Vaccinated
und .NotVaccinated
.
Von dem, was ich verstehe, ist der einzige Weg, eine neue Datei zu erstellen und den Code anzupassen. Ich muss eine Unterklasse erstellen und sie einer Entität (Dog in diesem Fall) aus der Datei .xdatamodeld
zuweisen. Dann erstellt es 2 Dateien Dog+CoreDataProperties.swift
und Dog.swift
.
Und ich sollte in Dog+CoreDataProperties.swift
die Eigenschaften hinzufügen, die ich den Hund haben möchte, wie @NSManaged var name: String
und legsNumber
, aber was ist mit der Enum?
Kann es so sein?
@NSManaged enum VaccinationStatus {
case Vaccinated
case NotVaccinated
}
Kann ich eine weitere Klasse mit Eigenschaften hinzufügen? Wie ein Array mit, sagen die Markennamen und Preise der Kleidung jedes Hundes (irgendwie extrem, aber Sie verstehen, was ich meinte). Oder muss ich eine andere Entität hinzufügen und eine andere Datei erstellen und NSManaged
Eigenschaften hinzufügen?
Konnten Sie etwas Code zur Verfügung stellen? Ich recherchierte weiter, aber ich habe immer noch nicht gefunden, was ich wollte. Nehmen wir an, ich habe die Entität 'EmployeeEntity' mit den Attributen' name' und 'dateOfBirth' (String und Date). Jeder Mitarbeiter kann Aufgaben erfüllen. Also sollte das eine andere Entität TaskEntity mit den Attributen taskName und taskStatusValue sein? Und fügen Sie "Aufgaben" als eine Beziehung zu "EmployeeEntity" und "Mitarbeiter" zu "TaskEntity" hinzu? Und dann sollte ich die Dateien für beide Entitäten erstellen? Ich möchte im Grunde, dass das Endergebnis für mich der Zugriff auf 'employee.task [0] .status' ist. Ist die obige Logik korrekt? – Lawrence413
Und dann, wenn ich den Code in diesem Tutorial (in der Enums-Sektion) http://www.jessesquires.com/better-coredata-models-in-swift/ in 'Task.swift' hinzufügen werde ich in der Lage sein Zugriff auf 'employee.task [0] .status'? – Lawrence413
Ja, deine Logik klingt gut. Ich hatte keine Zeit, das Tutorial zu betrachten, auf das Sie verweisen – Wain