2010-06-05 8 views
0

J'utilise un exemple du livre de développeur iphone d'apress. le problème est que cet exemple fonctionne uniquement sur le simulateur im essayant de comprendre comment je peux le faire fonctionner sur l'appareil. Ce chapitre ne fonctionne pas du tout. ci-dessous est l'exemple de code. data.plist est situé dans le dossier de ressources.Lire/écrire sur un fichier Plist sans utiliser l'iPhone SImulator?

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
return [documentsDirectory stringByAppendingPathComponent:kFilename]; 

Ensuite, vérifie si le fichier est localisé. ceci est ignoré, donc je suppose que cela ne trouve pas le fichier.

if ([[NSFileManager defaultManager]fileExistsAtPath:filePath]) { 
    NSArray *array = [[NSArray alloc] initWithContentsOfFile:filePath]; 
    BGDataSave = [array objectAtIndex:0]; 
    NSLog(@"%@", BGDataSave); 
    price.text = [array objectAtIndex:1]; 
    percent.text = [array objectAtIndex:2]; 
    salepriceLabel.text = [array objectAtIndex:3]; 
    origpriceLabel.text = [array objectAtIndex:4]; 
} 

Répondre

1

Si data.plist est dans le répertoire des ressources, obtenir le chemin comme ceci:

filePath = [[NSBundle mainBundle] pathForResource:@"data" ofType:@"plist"]; 

Si l'intention est de modifier le fichier, alors vous le copier dans le répertoire des documents quand il n'existe pas. Vous ne pouvez pas écrire dans les fichiers du bundle, où sont stockées les ressources.

+0

J'aime le script, peut-être que je ne suis pas en train d'écrire le fichier dans le dossier de documents comment je le ferais? – Silent

+0

Vous utilisez NSArray pour lire dans le fichier. Vous pouvez également l'utiliser pour écrire un fichier avec 'writeToFile: atomically:' en passant le chemin que vous voulez écrire. Ou vous pouvez utiliser NSFileManager pour copier le fichier. – drawnonward

0

Avez-vous écrit le fichier dans le répertoire de documents en premier lieu? Sinon, il ne sera pas là ....

Questions connexes