2009-08-28 9 views
2

Si vous faites défiler jusqu'à la section 'Ecrire dans les fichiers et les URL' à ce link, le chemin doit-il être un fichier sur le disque? Est-il possible d'écrire dans un fichier dans le bundle ou doit-il toujours être déployé en premier?Écrire dans des fichiers groupés?

+0

Demandez-vous si vous pouvez écrire dans un fichier stocké dans votre ensemble d'applications? – mipadi

Répondre

11

Vous pouvez écrire des fichiers dans le groupe d'applications autant de fois que vous le souhaitez. Obtenez simplement le chemin du fichier par la méthode pathForResource:ofType: de NSBundle et vous pouvez écrire dans ce fichier. Si vous voulez juste le répertoire de l'ensemble, utilisez resourcePath.

Vous ne voulez pas voulez pour ce faire, cependant. Il y a plusieurs raisons, mais vous allez briser la signature de code, ce qui est important. Vous devez utiliser les conventions établies à la place (par exemple, écrire dans Bibliothèque: Application Support: Your App). Pour une raison (probablement) plus convaincante de ne pas le faire ... Lorsque j'ai commencé à apprendre la programmation Cocoa, j'ai sauvegardé dans le bundle parce que je ne voulais pas me soucier de la bibliothèque. Cela devient vraiment énervant, car chaque fois que vous modifiez votre programme, vous perdez toutes vos données/paramètres sauvegardés pour ce programme (en supposant que vous n'utilisiez pas NSUserDefaults pour les préférences). Je continuais à devoir passer de l'ancienne version à la nouvelle. En utilisant la bibliothèque, vous n'avez pas à vous en préoccuper.

+1

De plus, tous les utilisateurs ne peuvent pas écrire dans les fichiers et les répertoires de l'ensemble d'applications. Vous ne devriez vraiment pas écrire dans le paquet de l'application du tout. – mipadi

+0

Oui, c'est un bon point. – Cinder6

5

Le lot est sur le disque; c'est juste le répertoire ".app". Cependant, vous ne devriez pas écrire dans les fichiers de ce répertoire. Bien qu'il soit actuellement possible sur Mac, il va briser la signature du code. Sur iPhone, vous ne pouvez déjà pas écrire dans votre propre bundle, et nous devrions nous attendre à voir cette limitation à l'avenir sur Mac. Vous devriez écrire vos fichiers d'application dans divers répertoires sous ~/Library ou ~/Documents selon le cas. Voir le File System Programming Guide pour des conseils.

+0

le lien est cassé! –

+1

Lien mis à jour vers un nouvel emplacement –

Questions connexes