2010-08-03 12 views
3

Je veux faire une bibliothèque statique qui affiche essentiellement des vues et un bouton. Mon client veut que cela soit distribué en tant que bibliothèque pour être utilisé par d'autres développeurs iPhone.Ajouter des images, fichier chaîne à la bibliothèque statique dans l'iPhone

Mes doutes sont

  • Pouvons-nous ajouter des images et d'autres ressources à la bibliothèque .a fichier?
  • Comment pouvons-nous comprendre la localisation de cette bibliothèque statique? (??) Localizable.strings

Répondre

1

Une bibliothèque ainsi que des images et des ressources est exactement ce qu'un cadre est pour, et non une bibliothèque statique. (Disclaimer: Je suis un programmeur Mac, pas un programmeur iPhone, donc pour tout ce que je sais peut-être des cadres sont moins fréquents sur l'iPhone.)

+2

Mais les cadres ne sont pas autorisés par Apple dans l'iPhone, je suppose :( – jithinroy

+0

Je sais que c'est assez vieux maintenant , mais les frameworks personnalisés sont entièrement autorisés par Apple, j'ai construit moi-même et les applications ont été acceptées – Popeye

2

Depuis les cadres ne sont pas autorisés sur iOS, vous avez 2 choix possibles:

  1. Empilez un dossier "Resources" à côté de la bibliothèque statique. Cela contient vos images, etc. Fournir de la documentation à l'utilisateur de la bibliothèque sur l'emplacement des ressources (probablement copié dans le dossier Ressources de l'application). Les fichiers de localisation seraient importés dans le projet. Base64 (ou quoi que ce soit) encodent des images, etc., et les compilent sous forme de données statiques dans le code de la bibliothèque. C'est un peu gênant, mais cela peut être fait. Vous devez les désencoder lorsque vous les chargez pour l'affichage (NSData, etc.). Vous pouvez fournir une classe de ressources qui stocke les objets codés et les renvoie sous leur forme non codée. Un inconvénient évident est que votre code pourrait être assez grand - assurez-vous que les ressources charger réellement besoin et quand le déchargement lorsque vous avez terminé ..

Je ne crois pas que vous pouvez intégrer (pour une utilisation ultérieure) fichiers de chaînes de localisation cependant.

+0

Merci mvl, j'ai déjà implémenté la première option – jithinroy

+0

cela semble être la vraie réponse.Les cadres peuvent être la norme, mais puisqu'ils sont Cette option n'est pas permise dans iOS, elle est une meilleure solution.La première option permet au développeur de l'application de modifier les icônes de la bibliothèque. et l'option deux permet au développeur de bibliothèque de conserver ses propres icônes. –

+0

Ce n'est pas la bonne réponse les frameworks personnalisés sont entièrement autorisés tant qu'ils sont correctement faits. J'ai construit certains et mes applications ont été acceptées par Apple plusieurs fois. – Popeye

4

Ceci est correct, vous ne pouvez pas inclure les fichiers de localisation dans votre bibliothèque statique. C'est l'un des nombreux inconvénients que vous avez à traiter lors du développement d'une bibliothèque statique.

Pour que votre bibliothèque statique soit localisée, ajoutez les fichiers Localizable.strings que vous avez créés à votre projet, y compris votre bibliothèque et tout fonctionne correctement.

0

Vous pouvez convertir des images en données binaires et les ajouter à la bibliothèque sous la forme d'un caractère []. Ensuite, lorsque l'image est nécessaire il suffit d'utiliser

[[UIImage alloc] initWithData:[NSData dataWithBytesNoCopy:(void*)<CHAR_ARRAY_NAME> length:sizeof(<CHAR_ARRAY_NAME>) freeWhenDone:NO]]; 

Cette application simple vous aidera à convertir des images https://github.com/RomanN2/image-to-binary-data