2 votes

Lier les frameworks iOS

Lorsque je veux utiliser des cadres dans iOS comme CoreLocation suis-je censé les lier à Linked Frameworks and Libraries ? Je sais que c'est écrit dans la documentation pour CoreLocation par exemple, mais pourquoi cela fonctionne-t-il bien sans ajouter ces frameworks alors ? Idem pour UIKit par exemple. Pourquoi cela fonctionne-t-il sans lien, et est-il préférable de les lier ou non ?

2voto

clemens Points 10221

Lors de l'établissement de liens, une application doit toujours connaître tous les cadres et bibliothèques qu'elle utilise lorsque ses symboles sont référencés directement à partir du code objet.

Comme toute application iOS utile nécessite UIKit, ce dernier est toujours implicitement lié. Il s'agit d'une préférence dans Xcode, que vous ne pouvez probablement pas changer. Il existe de nombreuses autres bibliothèques (par ex. libc , libm , libSystem ) et certains cadres (par ex. Foundation.framework , QuartzCore.framework ) qui sont aussi implicitement liés. Certaines bibliothèques et certains frameworks sont indirectement liés, par exemple Foundation inclut libSystem y libobjc .

L'éditeur de liens doit connaître toutes ces bibliothèques et frameworks. Ainsi, Xcode crée un fichier nommé <Project>_dependency_info.dat (par exemple TestApp_dependency_info.dat ) situé quelque part dans le dossier de construction. Ce fichier contient toutes les bibliothèques et tous les frameworks qui sont liés explicitement et implicitement. Même pour un petit projet Hello World en Swift, ce fichier a déjà une taille de 20kb.

Mais toutes les applications n'utilisent pas Core Location, MapKit, WebKit, etc. ou des bibliothèques telles que libz et chaque cadre et bibliothèque supplémentaire ralentit la phase de liaison. Et bien sûr, Apple ne peut pas connaître tous les frameworks et bibliothèques (personnalisés) que vous souhaitez inclure dans vos projets. Vous devez donc ajouter ces bibliothèques explicitement en les ajoutant à Cadres et bibliothèques liés .

Ce mécanisme d'intégration automatique des cadres nécessaires et manuelle des cadres optionnels est en fin de compte une approche très pragmatique.

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