Ich arbeite an einer Anwendung, wo der Benutzer mit dem Finger auf dem Bildschirm zeichnen kann. Ich benutze dafür UIBezierPath. Ich muss diese Daten beibehalten, die ein NSArray ist, das mehrere BezierPath-Objekte enthält. Was ist der beste Weg, dies zu tun? In Coredata speichern, mit NSData in einer Datei speichern? Herzlichen Dank.UIBezierPath Persistenz mit Kerndaten
Antwort
Erwarten Sie, mehrere Objekte speichern zu müssen? Müssen Sie sie basierend auf einem Filter oder einer Bestellung abrufen können? Ich empfehle die Verwendung von Core Data, um eine ordentliche Menge an Arbeit beim Packen/Entpacken der Daten zu sparen. Es gibt keinen Grund, es in einer Datei zu speichern.
edit:
Wie die andere Antwort sagte, Sie archivieren es nur NSData. Die UIBezierPath Klasse hält sich an das NSCoding Protokoll, so dass Sie etwas tun kann, es zu archivieren:
NSData *bezierData = [NSKeyedArchiver archivedDataWithRootObject:bezierPath];
können Sie beharren, dass NSData Objekt in Core Data.
UIBezierPath *bezierPath = [NSKeyedUnarchiver unarchiveObjectWithData:bezierData];
Archiv der UIBezierPath zu NSData, und speichern Sie es als ein Attribut des Typs NSData in Coredata:
das Archiv zu entschlüsseln, haben wir eine bezierData
NSData Objekt vorausgesetzt, können Sie so etwas wie tun. Sie können eine einfachere API verwenden, wenn Sie sie zu einem transformierbaren Attribut machen.
Es ist ziemlich einfach zu tun, besonders für Klassen, die bereits die Archivierung unterstützen.
Weitere Informationen finden Sie in diesem Dokument.
- 1. mehrere Persistenz speichert mit Kerndaten
- 2. UIBezierPath mit Farbverlauf
- 3. UIBezierPath um UIImage mit Transparenz
- 4. Mehrere UIView-Animation mit UIBezierPath
- 5. Kerndaten Multithread mit
- 6. Lokalisierung mit Kerndaten
- 7. Relationship Fehler mit Kerndaten
- 8. Editierbare TableView mit Kerndaten
- 9. Confluence Persistenz
- 10. Kürzen Sie einen UIBezierPath
- 11. Kerndaten: UITableView mit mehreren NSFetchedResultControllern
- 12. Kerndaten transiente Werte mit Swift
- 13. "Export" Kerndaten mit magischen Datensatz
- 14. Gruppieren nach Wochentagen mit Kerndaten
- 15. Kerndaten mit iOS-App senden
- 16. iOS: Inverse UIBezierPath (bezierPathWithOvalInRect)
- 17. UIBezierPath in Swift archivieren
- 18. UIBezierPath einfaches Rechteck
- 19. Dynamic UIBezierPath für Animationen
- 20. UIBezierPath Mehrere Zeilenfarben
- 21. UIButton und UIBezierPath
- 22. Zeige UIBezierPath auf Ansicht
- 23. UIBezierPath addClip und drawRect
- 24. Clip-Maskierung uiview mit CAShapeLayer und UIBezierPath
- 25. UIBezierPath Zeichnen Kreis mit verschiedenen Strichen
- 26. Grenze auf UIView mit uibezierpath zeichnen
- 27. Löschen von Tabellenzeile mit Animation mit Kerndaten
- 28. Persistenz von Checkbox-Werten
- 29. Zustand Maschine Persistenz WorkFlow
- 30. Keine Sitzung Persistenz Laravel
Wie würden Sie einen UIBesierPath in Coredata bestehen bleiben? –
Aktualisierung meiner Antwort. – Dima