2010-03-15 5 views
3

J'ai fait une classe qui est conforme au protocole NSCoding et fait tout le codage et le décodage.Comment persister et charger un objet conforme au protocole NSCoding?

Pour mon application, je souhaite simplement conserver un objet de cette classe sur l'appareil et la prochaine fois que l'application sera lancée, je souhaite la réinsérer dans la mémoire.

Fondamentalement, c'est juste une classe qui contient des informations d'entrée utilisateur. Par exemple, l'utilisateur commence à écrire un texte, puis quitte l'application. La prochaine fois que je veux charger cet objet de données.

Je suppose que j'ai besoin de NSKeyedArchiver? Y a-t-il un bon tutoriel à ce sujet? Comment je fais ça?

Répondre

3

Oui, vous avez besoin de l'archiveur NSKeyed (Un). Ces 2 classes peuvent convertir votre objet vers/depuis NSData que vous pouvez sauvegarder/charger en tant que fichier.

Pour enregistrer votre objet dans un fichier:

if (![NSKeyedArchiver archiveRootObject:your_object toFile:@"filename.plist"]) 
    // save failed. 

Pour lire l'objet d'un fichier:

id your_object = [NSKeyedUnarchiver unarchiveObjectWithFile:@"filename.plist"]; 
if (your_object == nil) 
    // read failed. 
+0

Où est-ce fichier stocké? Dans le répertoire des documents? Est-ce sauvegardé par iTunes automatiquement? – dontWatchMyProfile

+0

@mystify: Partout où vous voulez (bien sûr, vous devez fournir le chemin complet). Il est sauvegardé si le fichier est enregistré dans ~/Documents. – kennytm

Questions connexes