iPhone SDK - Ajout de contenu compressé dans les ressources et décompressé puis dans le dossier Documents

StackOverflow https://stackoverflow.com/questions/1463967

  •  13-09-2019
  •  | 
  •  

Question

J'ai des ressources (zip) qui doivent être expédiés avec mon application iphone. Lorsque l'application se lance pour la première fois, ce fichier compressé doit être déplacé / copié dans le dossier Documents et décompressez-y. L'utilisateur peut alors ajouter d'autres fichiers sur ce chemin de l'application. Quelqu'un peut-il s'il vous plaît suggérer comment puis-je y parvenir?

Merci!

Était-ce utile?

La solution

En fonction de votre commentaire ci-dessus:

  

La raison pour laquelle je veux ajouter un comprimé   des ressources, car il y a plusieurs   des dossiers. Si je ne compressent pas alors je vais   besoin de déplacer des fichiers individuellement. Mauvais   ont également besoin de maintenir une liste de fichiers   quelque part pour que je puisse lire le fichier   nom, puis les déplacer. j'ai pensé   et décompressé était passer comme un éclair un simple   solution.

Vous pouvez ajouter tous les fichiers dans un dossier dans votre paquet. Lorsque l'application lance pour la première fois utiliser énumération rapide pour exécuter dans le dossier et ce que jamais il trouve dans ce dossier, il copie dans le dossier Documents. est un peu plus complexe Manipulation des dossiers dans des dossiers (peut-être ajouter récursivité). De cette façon, vous n'avez pas à vous soucier de zip ou de goudron, ni de garder un répertoire de fichiers à installer.

Il suffit de placer le dossier de fichiers que vous voulez dans le dossier des ressources de Xcode et lui dire d'importer comme un dossier non en tant que groupe. De cette façon, les fichiers sont installés dans vos ressources dans un dossier au lieu de simplement sous forme de fichiers individuels dans tous les sens.

EDIT:

Mieux encore, faites ce que je dis de mettre tous les fichiers que vous voulez dans un dossier, ajouter à votre projet, mais pas comme un « groupe », puis à la première utilisation de lancement:

[[NSFileManager defaultManager] copyItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error];

et il copiera votre répertoire entier d'un endroit à l'autre. FACILE!

Autres conseils

Ajoutez le cadre de libz.dylib à votre projet, et inclure catégorie gzip NSData de Deusty qui vous donnera des méthodes de compression / décompression.

Bien que ce soit disponible en utilisant le libz.dylib, il est vraiment inutile car il vous sauver peu (le cas échéant) l'espace. Vous paquet d'applications est déjà compressé lors de son transfert au téléphone. La compression sur le dessus de la compression donne généralement peu de compression supplémentaire.

Essayez vous-même. Vous pouvez constater que l'expédition de votre application avec le contenu décompressé peut prendre autant d'espace que le contenu compressé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top