Pregunta

hasta IOS7, Apple no apoyó la vinculación dinámica debido a las preocupaciones de seguridad. La reutilización de código entre desarrolladores generalmente se basa en bibliotecas estáticas, que se construyeron como parte del ejecutable de la aplicación.

Introducción de extensiones en iOS8 parece cambiar esto un poco, porque las extensiones son ejecutables separados. El código compartido entre una extensión y su aplicación que contiene se realiza a través de un marco. Apple está diciendo esto en sus notas de liberación:

Frameworks para iOS. Los desarrolladores de iOS ahora pueden crear marcos dinámico . Los marcos son una colección de código y recursos para encapsular. Funcionalidad que es valiosa en múltiples proyectos. Marcos trabajar perfectamente con extensiones, compartir la lógica que puede ser utilizada por ambos La aplicación principal, y las extensiones agrupadas.

énfasis es mío.

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

Además, en la guía de Extension Dev, explican que puede compartir código entre una extensión y la aplicación que contiene a través de un "marco incrustado".

Fuente: https://developer.apple.com/library/content/documentation/general/conceptual/extensibilitypg/anceptensionscenarios.html#//apple_ref/doc/uid/tp40014214-ch21-sw1

Mi pregunta es: ¿qué es un marco incrustado, cómo se diferencia de un marco dinámico, y veremos realmente el enlace dinámico adecuado en IOS8? Toda la documentación que he leído parece ambiguo sobre esto.

¿Fue útil?

Solución

Los marcos "P>" Embedded "y" Dynamic "no se refieren al mismo aspecto de los marcos.No son lo opuesto unos de otros.Primero, definamos qué es un marco: en Apple Lingo, un marco se refiere a algún código compilado + los encabezados públicos de dicho código.

  • Ahora, un marco de dinámico es un marco cuyo código se construyó como una biblioteca dinámica.Es lo opuesto a un marco "estático", donde se construiría el código como una biblioteca estática.En caso de que se pregunte, Wikipedia tiene una una explicación muy agradable de cuál es la diferencia entre una biblioteca estática y dinámica.

  • y, finalmente, un marco incrustado es un marco que se empaqueta dentro de una aplicación, en lugar de instalarse en todo el sistema, en "/ sistema / biblioteca / marco", por ejemplo.

Otros consejos

Un marco incrustado es simplemente uno que está incluido en el paquete de aplicaciones, en lugar de un marco global que se instala en el directorio del sistema.

Marcos dinámicos no significa Marco en vínculo dinámico . Las aplicaciones siguen trabajando en un entorno de sandbox. No es que sus marcos personalizados se instalarán con el iOS. Cada una de sus aplicaciones que utiliza el marco común que ha desarrollado se va a copiar dentro del paquete de todas las aplicaciones.

Puedes ver esto por ti mismo. Vaya al directorio de datos derivado de su Xcode y dentro de los datos de la aplicación, encontrará todos los marcos integrados copiados.

La única cosa nueva con la creación de marcos con iOS 8 en comparación con las bibliotecas estáticas es que los archivos y activos del encabezado público se agrupan dentro del marco. Si ha estado haciendo este tipo de cosas con versiones anteriores de Xcode, recordará el dolor con suministro de encabezados públicos y luego agregar la ruta de búsqueda dentro de la configuración de Xcode y para los activos que tuvimos que pasar en un paquete separado.

Este único inconveniente de usar marcos que veo es que ahora no podemos simplemente usarlo lipo para generar una biblioteca estática de grasa para todo tipo de arquitecturas.

IMO Apple está utilizando la palabra 'dinámica' para sugerir 'independiente'.

Watch WWDC2014 - construyendo marcos modernos para más detalles.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top