2009-06-18 5 views
1

Est-ce que quelqu'un a déjà enregistré des préférences d'application (dans l'application, pas dans l'application Paramètres) impliquant des images prises avec l'appareil photo?Enregistrement d'une image dans les préférences de l'utilisateur

Les préférences comprennent NSStrings, UIImage, BOOLs, etc. L'UIImage est une photo prise avec une caméra.

ce que je pourrais ces tout dans un NSMutableArray puis il suffit de faire quelque chose comme ceci:

[array writeToFile:[self dataFilePath] atomically:YES]; 

un tableau peut contenir une telle variété d'objets? (et BOOL n'est pas strictement un objet je suppose)

Répondre

3

Vous pouvez enregistrer ce tableau en utilisant la NSKeyedArchiver, évitant ainsi la liste des propriétés:

[NSKeyedArchiver archiveRootObject:array toFile:[self dataFilePath]]; 
+0

merci. Je vais essayer vos deux suggestions pour voir qui fonctionne. Avec la technique NSKeyedArchiver, comment charger les valeurs dans? Puis-je allouer/init un tableau, et faire: [array unarchiveObjectWithFile: [self dataFilePath]]; ? – cannyboy

+0

NSArray * array = [NSKeyedUnarchiver unarchiveObjectWithFile: pathToFile]; –

+0

J'ai finalement utilisé la technique 'UIImage> NSData'. Serait-il avantageux d'utiliser la technique NSKeyedArchiver? Peut-être que la conversion de UIImage vers NSData et vice versa prend un peu plus de temps. – cannyboy

1

Vous pouvez seulement écrire property lists en utilisant writeToFile:atomically:. Cela signifie que le tableau (et les sous-conteneurs possibles) ne peuvent contenir que des objets de type NSArray, NSDictionary, NSString, NSData, NSDate et NSNumber. Vous devez convertir votre image en NSData, pour l'utiliser dans une liste de propriétés.

Questions connexes