2012-07-12 31 views
8

Pracuję nad aplikacją, w której użytkownik może rysować na ekranie palcem. Używam do tego UibezierPath. Muszę utrzymywać te dane, które są NSArray zawierające wiele obiektów BezierPath. Jaki jest najlepszy sposób na zrobienie tego? Przechowywać w coredatach, przechowywać w pliku przy użyciu NSData? Bardzo zobowiązany.Trwałość UIBezierPath z podstawowymi danymi

Odpowiedz

12

Czy spodziewasz się, że będziesz musiał przechowywać wiele obiektów? Czy będziesz mieć możliwość pobrania ich na podstawie jakiegoś filtra lub zamówienia? Zalecam użycie Core Data, aby zaoszczędzić sobie przyzwoitą ilość pracy przy pakowaniu/rozpakowywaniu danych. Nie ma powodu, aby przechowywać go w pliku.

edit:

Jako druga odpowiedź powiedział, po prostu zarchiwizować go do NSData. Klasa UIBezierPath przylega do protokołu NSCoding więc można zrobić coś takiego, żeby go zarchiwizować:

NSData *bezierData = [NSKeyedArchiver archivedDataWithRootObject:bezierPath]; 

Można utrzymywać, że obiekt NSData w danych Core.

zdekodować archiwum, zakładając, że mamy bezierData NSData obiektu, można zrobić coś takiego:

UIBezierPath *bezierPath = [NSKeyedUnarchiver unarchiveObjectWithData:bezierData]; 
+0

Jak utrzymasz UibesierPath w coredata? –

+0

aktualizuję moją odpowiedź. – Dima

Powiązane problemy