58 votes

Comment créer un ensemble d'actifs iOS?

J'ai vu une coutume de l'actif à l'ensemble d'un projet iOS, j'ai évalué, donc au moins je sais que c'est possible.

Mon problème est que je suis en utilisant un CATiledLayer avec près de 22 000 tuiles pour une image donnée, et il faut un temps très long à compiler (une demi-heure de nouvelle génération, de 5 à 10 minutes pour les réguliers de construire). Donc, je veux prendre toutes les images et de faire un lot personnalisé pour le rendre portable et j'espère ne pas recompiler dans l'app bundle à chaque fois.

Comment puis-je aller à ce sujet? J'ai vérifié les docs, mais ne pas y voir une explication sur la façon de créer le bundle.

105voto

michael Points 880

La réponse est bêtement simple

Créez un dossier dans le Finder, ajoutez-y des fichiers, renommez-le en bundlename.bundle

glisser dans Xcode - succès!

pour y accéder, utilisez le formulaire PathToMainBundle + "/ bundlename.bundle"

40voto

hfossli Points 6815

Comment créer un bundle

  1. Créer un dossier dans le finder.
  2. Ajouter des fichiers dans le dossier
  3. Renommer le dossier, de sorte que son extension est - .bundle (par exemple, "Nouveau dossier" -> "BundleName.bundle")

PS: Vous pouvez à tout moment cliquer-droit sur le dossier et appuyez sur "Afficher le contenu du paquet" afin d'ajouter, de supprimer ou de modifier les fichiers.

Comment ajouter le bundle de Xcode

  1. Faites-la glisser dans Xcode

Comment utiliser le bundle

NSString *bundlePath = [[NSBundle mainBundle] pathForResource:@"BundleName" ofType:@"bundle"];
NSBundle *bundle = [NSBundle bundleWithPath:bundlePath]; 
NSString *resource = [bundle pathForResource:@"fileName" ofType:@"fileType"];

(Remplacer BundleName, fileName et fileType avec des noms appropriés)

27voto

Hari Karam Singh Points 1942

Deux autres morceaux de conseils:

Tout d'abord, afin de voir le contenu du paquet dans XCode, vous devez définir le il est de type dans le Fichier de l'Inspecteur de l'Utilitaire de Volet, à l'Application "Bundle". Vous ne serez pas en mesure de copier et venir via XCode. Vous devez utiliser la Borne, mais XCode qui sera mis à jour immédiatement.

En Second lieu, afin d'utiliser les ressources dans le bundle voici une extrait de...

NSString *bundlePath = [[NSBundle mainBundle] pathForResource:@"AquarianHarp" ofType:@"bundle"];
NSString *imageName = [[NSBundle bundleWithPath:bundlePath] pathForResource:@"trebleclef2" ofType:@"png"];
UIImage *myImage = [[UIImage alloc] initWithContentsOfFile:imageName];

Comme mentionné dans mon commentaire ci-dessus, vous n'avez pas besoin de charger le bundle (vous ne pouvez pas car il n'est pas exécutable) et l' ofType doit correspondre au cas de votre fichier pour qu'il fonctionne sur l'appareil. Il fonctionnera de toute façon dans le simulateur afin de ne pas se laisser berner par ce hareng rouge!

Enfin, vous n'avez pas besoin de mettre vos ressources dans la rubrique "Ressources" sous-dossier à l'intérieur du bundle. Il semble que vous pouvez utiliser un arbitraire de la disposition (les conséquences de performance?).

10voto

LandedGently Points 405

Voici comment cela fonctionne: Dans XCode, créez un nouveau fichier | Ressource | Ensemble de paramètres. Ensuite, dans le Finder, sélectionnez cet ensemble, choisissez Afficher le contenu du paquet et ajoutez les fichiers image.

Ensuite, dans le code, référencez une image de cette façon:

 NSString *imgName = @"bundlename.bundle/my-image.png";
UIImage *myImage = [UIImage imageNamed:imgName]; 
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X