2010-04-12 5 views
2

Je suis nouveau au développement d'iphone. J'ai créé la plist telle que de mon précédent post. Cela fonctionne bien dans le simulateur mais pas dans l'appareil. Veuillez m'aider dehors. Merci.Les données stockées dans des travaux de plist en simulaor mais pas dans l'appareil

EDIT: j'obtiens la valeur enregistrée du plist et vérifie la condition. Quand j'utilise le simulateur cela fonctionne mais pas dans l'appareil.

+0

Besoin de plus d'informations ici. Où se trouve le plist? Ajouté en tant que ressource dans Xcode? Créé en utilisant writeToFile? Aussi, que voulez-vous dire par "ça ne marche pas"? – Rengers

Répondre

2

(1) Vous ne pouvez pas écrire dans un fichier du dossier de ressources d'un iPhone. Il fait partie du système de sécurité du téléphone qui empêche le code malveillant de modifier une application après son installation. (2) Si vous voulez enregistrer de nouvelles données dans un fichier, vous devez écrire le fichier dans l'un des dossiers générés automatiquement. Chaque fois qu'une application iPhone est installée sur l'appareil ou le simulateur, le système crée un ensemble de dossiers par défaut.

(3) Vous voulez écrire dans le dossier Préférences ou dans le dossier Documents. Si les données concernent le fonctionnement de l'application, écrivez-la dans les préférences. S'il contient des données utilisateur, écrivez dans Documents.

Préférences:

NSArray *sysPaths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask, YES); 
NSString *prefsDirectory = [[sysPaths objectAtIndex:0] stringByAppendingPathComponent:@"/Preferences"]; 

Documents:

NSArray *sysPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory ,NSUserDomainMask, YES); 
NSString *docsDirectory = [sysPaths objectAtIndex:0]; 

Dites que vous voulez lire un fichier de préférences par défaut plist, faire quelques modifications, puis enregistrez le dossier de préférences.

NSString *plistPath=[[NSBundle mainBundle] pathForResource:@"PlistFileName" ofType:@"plist"]; 
NSMutableArray *defaultPrefs=[[NSMutableArray alloc] initWithContentsOfFile:plistPath]; 
//... modify defaultPrefs 
NSString *outputFilePath=[prefsDirectory stringByAppendingPathComponent:@"alteredPrefs.plist"]; 
[defaultPrefs writeToFile:outputFilePath atomically:NO]; 
+0

Je vais d'abord trouver un nécromancien. Ce message a six ans. ;-) Temps pour un peu de maintenance. – TechZen

+0

Merci d'avoir pris le temps de résoudre ce problème! – Laurel

Questions connexes