Question

jusqu'à l'IOS7, Apple n'a pas soutenu la liaison dynamique en raison de problèmes de sécurité. La réutilisation du code entre les développeurs s'inquiète généralement sur des bibliothèques statiques, qui ont été construites dans le cadre de l'exécutable de l'application.

Introduction des extensions dans l'IOS8 semble modifier cela un peu, car les extensions sont des exécutables distincts. Le partage du code entre une extension et son application contenant est effectué via un cadre. Apple dit cela dans leurs notes de publication:

Cadres pour iOS. Les développeurs ios peuvent désormais créer des cadres dynamiques . Les cadres sont une collection de code et de ressources pour encapsuler fonctionnalité précieuse sur plusieurs projets. Cadres Travaillez parfaitement avec des extensions, partageant la logique qui peut être utilisée à la fois l'application principale et les extensions groupées.

L'emphase est la mienne.

Source: https://developer.apple.com/library/content/documentation/xcode/conceptual/whatsnewxcode-archive/articles/xcode_6_0.html#//apple_ref/doc/uid/tp40014509-sw14

En outre, dans le Guide de Dev Extension, ils expliquent que vous pouvez partager du code entre une extension et l'application contenant via un "cadre incorporé".

Source: https://developer.apple.com/library/content/documentation/general/conceptual/extabilitypg/ExtensionsCenarios.html#//apple_ref/doc/uid/tp40014214-ch21-sw1

Ma question est - Qu'est-ce qu'un cadre intégré, comment va-t-il différer d'un cadre dynamique et verrons-nous vraiment une liaison dynamique appropriée dans iOS8? Toute la documentation que j'ai lue semble ambiguë à ce sujet.

Était-ce utile?

La solution

Les cadres "intégrés" et "dynamiques" ne font pas référence au même aspect des cadres.Ils ne sont pas le contraire l'un de l'autre.Tout d'abord, définissons ce qui est un cadre: dans Apple Lingo, un cadre fait référence à un code compilé + les en-têtes publics dudit code.

  • MAINTENANT A DYNAMIC est un cadre dont le code a été construit comme une bibliothèque dynamique.C'est le contraire d'un cadre "statique", où le code serait construit comme une bibliothèque statique.Si vous vous demandez, Wikipedia a une très belle explication de quelle est la différence entre une bibliothèque statique et une bibliothèque dynamique.

  • et enfin, un cadre intégré est un cadre conditionné dans une application, contrairement à être installé à l'échelle du système, dans "/ System / Bibliothèque / Cadres", par exemple.

Autres conseils

Un cadre intégré est simplement celui inclus dans l'ensemble de l'application, plutôt qu'un cadre global installé dans le répertoire système.

les frameworks dynamiques ne signifie pas framework lié dynamiquement . Les applications travaillent toujours dans un environnement sablebox. Ce n'est pas comme si vos cadres personnalisés seront installés avec l'iOS. Chacune de vos applications utilisant le cadre commun que vous avez développé va être copiée à l'intérieur de chaque ensemble d'applications.

Vous pouvez voir cela pour vous-même. Accédez à votre répertoire de données dérivé de votre Xcode et à l'intérieur des données de l'application, vous trouverez toutes les frayères incorporées copiées.

La seule nouvelle chose avec la création de cadres avec iOS 8 par rapport aux bibliothèques statiques est que les fichiers d'en-tête publics et les actifs sont regroupés dans le cadre. Si vous avez fait ce genre de choses avec des versions antérieures de Xcode, vous vous souviendrez de la douleur avec des en-têtes publics fournissant, puis en ajoutant le chemin de recherche dans les paramètres Xcode et pour les actifs que nous avons dû passer dans un ensemble séparé.

Ce seul inconvénient d'utiliser des cadres que je vois est que maintenant nous ne pouvons pas simplement utiliser lipo pour générer une bibliothèque statique grasse pour toutes sortes d'architectures.

imo Apple utilise le mot "dynamique" pour suggérer "indépendant".

montre WWDC2014 - Création des cadres modernes pour plus de détails.

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