133 votes

différence entre framework et bibliothèque statique dans xcode4, et comment les appeler

Je suis tout à fait nouveau pour xcode et objective-c. Je veux poser une question très simple.

J'ai vu que lors de la "liaison binaire pour les bibliothèques" dans les paramètres du projet, il y a des différences sur le cadre et les bibliothèques importées à partir d'autres projets dans l'espace de travail.

Première question, pourquoi il y a un cadre ? Et pourquoi il y a une bibliothèque ? Ne ma bibliothèque un cadre ? Et puis, à partir de un .h fichier, comment puis-je appeler les classes de mon importés bibliothèque statique ? Je suppose qu'il doit y avoir un préfixe, mais je ne pouvais pas le trouver. J'ai essayer avec et "ProjName/Maclasse.h" mais cela ne fonctionne pas.

S'il vous plaît, être comme beaucoup que vous le pouvez.

merci

140voto

Luke Redpath Points 4424

Le plus grand avantage d'un cadre a plus de bibliothèques statiques, c'est qu'ils agissent comme une façon ingénieuse de l'emballage jusqu'à la bibliothèque compilé binaire et de tous les en-têtes. Ils peuvent être déposés dans votre projet (tout comme le kit de développement intégré dans les cadres comme la Fondation et UIKit) et ils devraient tout simplement le travail (la plupart du temps).

La plupart des cadres contiennent les bibliothèques dynamiques; des cadres créés dans Xcode à l'aide de Mac-Cadre modèle permettra de créer une bibliothèque dynamique. L'iPhone ne prend pas en charge dynamique des cadres qui est pourquoi il est devenu commun pour réutilisables bibliothèques de l'iOS code pour être distribué dans les bibliothèques statiques à la place.

Les bibliothèques statiques sont beaux, mais ils nécessitent un peu de travail supplémentaire de la part de l'utilisateur. Vous devez lier votre projet à la bibliothèque et vous devez copier les fichiers d'en-tête dans votre projet ou de référence quelque part par la configuration de l'en-tête approprié chemins de recherche dans vos paramètres de construction.

Donc: en résumé, mon avis est que la meilleure façon de distribuer votre bibliothèque est comme un cadre. Pour créer un "statique" cadre pour iOS, vous pouvez prendre un cadre normal et remplacer le fichier binaire avec votre compilé bibliothèque statique. C'est de cette façon-je distribuer un de mes bibliothèques, Resty et comment j'ai l'intention de distribuer mes bibliothèques dans l'avenir.

Vous pouvez regarder le fourni Rakefile dans ce projet (dans le cas où vous ne seriez pas au courant, le Râteau est Ruby est l'équivalent de Faire). J'ai une poignée de tâches pour la compilation de mon projet (à l'aide d' xcodebuild) et de l'emballage comme un cadre statique pour iOS. Vous devriez trouver cela utile.

Alternativement, vous pouvez utiliser ces Xcode 4 modèles pour la création d'un iOS cadre.

Mise à jour 9 Décembre 2013: c'est une réponse alors j'ai pensé que je pourrais modifier pour dire que mon premier choix pour la bibliothèque de la distribution a changé. Mon premier choix pour un tiers de la bibliothèque comme un consommateur ou le producteur est CocoaPods. Je distribue mes bibliothèques à l'aide de CocoaPods et offrent un fichier statique de la bibliothèque avec des en-têtes comme option de repli.

19voto

Martin Ullrich Points 5894

fondamentalement, les cadres des bibliothèques et de fournir un mécanisme pratique pour travailler avec eux. Si vous regardez "à l'intérieur d'un cadre, c'est juste un répertoire contenant une bibliothèque statique et les fichiers d'en-tête (dans certains structure de dossier avec des métadonnées).

Si vous souhaitez créer votre propre cadre de référence, vous devez créer une "bibliothèque statique" et l'emballer dans une manière spécifique. voir cette question

En général, les cadres conceptuels sur les plates-formes sont utilisées pour réutilisables comportement vous permet d'ajouter votre propre code "dans un cadre existant". si vous voulez avoir quelques fonctionnalités spécifiques, vous souhaiterez peut-être utiliser une bibliothèque (par exemple, three20) et l'emballer dans votre application distribuable

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