2012-07-12 17 views
8

Sto lavorando a un'applicazione in cui l'utente è in grado di disegnare sullo schermo con il dito. Sto usando UIBezierPath per questo. Ho bisogno di mantenere questo dato che è un NSArray contenente più oggetti BezierPath. Qual è il modo migliore per farlo? Archiviare in coredata, archiviare in un file usando NSData? Molto obbligato.Persistenza UIBezierPath con dati di base

risposta

12

Ti aspetti di dover memorizzare più oggetti? Dovrai essere in grado di recuperarli in base a qualche filtro o ordinamento? Raccomando di utilizzare Core Data per risparmiare una discreta quantità di lavoro nell'imballaggio/disimballaggio dei dati. Non c'è davvero una ragione per archiviarlo in un file.

edit:

Come l'altra risposta, ha detto, basta archiviare a NSData. La classe UIBezierPath aderisce al protocollo NSCoding modo da poter fare qualcosa di simile per archiviarlo:

NSData *bezierData = [NSKeyedArchiver archivedDataWithRootObject:bezierPath]; 

Si può persistere quell'oggetto NSData in Core Data.

per decodificare l'archivio, assumendo abbiamo un NSData oggetto bezierData, si può fare qualcosa di simile:

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

Come ti persistere un UIBesierPath in CoreData? –

+0

aggiornamento della mia risposta. – Dima