Pergunta

Até iOS7, a Apple não suporta ligação dinâmica devido a preocupações de segurança.A reutilização de código entre programadores geralmente invocado bibliotecas estáticas, que foram construídos como parte do executável do aplicativo.

A introdução de extensões em iOS8 parece mudar isso um pouco, porque são extensões executáveis separados.O compartilhamento de código entre a extensão e a respectiva aplicação é feita através de um framework.A Apple está dizendo isso em suas notas de lançamento:

Quadros para iOS.iOS agora os desenvolvedores podem criar dinâmica quadros.Os quadros são uma coleção de código e recursos para encapsular a funcionalidade que é valioso em vários projetos.Quadros funciona perfeitamente com extensões, a partilha de uma lógica que pode ser usada tanto por a aplicação principal, e o pacote de extensões.

A ênfase é minha.

Fonte: https://developer.apple.com/library/content/documentation/Xcode/Conceptual/WhatsNewXcode-Archive/Articles/xcode_6_0.html#//apple_ref/doc/uid/TP40014509-SW14

Além do mais, na extensão dev guia, eles explicam que você pode compartilhar código entre uma extensão e do que contém o aplicativo através de um "embedded framework".

Fonte: https://developer.apple.com/library/content/documentation/General/Conceptual/ExtensibilityPG/ExtensionScenarios.html#//apple_ref/doc/uid/TP40014214-CH21-SW1

A minha pergunta é - o que é incorporado um quadro, como é que diferem de um quadro dinâmico, e vamos ver realmente adequada vinculação dinâmica em iOS8?Toda a documentação que eu li parece ambígua sobre isso.

Foi útil?

Solução

"Embedded" e "Dinâmico" quadros de não se referir ao mesmo aspecto dos quadros.Eles não são o oposto um do outro.Primeiro, vamos definir o que é um framework:na Apple linguagem, um quadro refere-se a algumas código compilado + cabeçalhos públicos do referido código.

  • Agora um dinâmica framework é um framework cujo código foi construído como uma biblioteca dinâmica.Ele é o oposto de uma "estática" do quadro, onde o código deve ser construído como uma biblioteca estática.No caso você esteja se perguntando, a Wikipédia tem muito boa explicação o que é a diferença entre um estática e uma biblioteca dinâmica.

  • E, finalmente, uma incorporado framework é um framework que é embalado dentro de um aplicativo, como oposição a ser instalado em todo o sistema, em "/System/Library/Frameworks", por exemplo.

Outras dicas

Um embedded framework é simplesmente aquela que está incluído no pacote de aplicativo, em vez de um quadro global que é instalado no diretório do sistema.

Dinâmica De Estruturas não significa ligado dinamicamente quadro.Aplicativos ainda apenas trabalhar em um ambiente de sandbox.Não é como o seu estruturas personalizadas estão indo para ser instalado com o iOS.Cada um de seus aplicativos que usa o quadro comum que desenvolveu vai ser copiada para dentro de cada aplicação do pacote.

Você pode ver isso por si mesmo.Ir para o Xcode é Derivado de Dados de diretório e dentro do app de dados, você vai encontrar todos os incorporados quadros copiados.

A única coisa nova com a criação de Quadros com iOS 8 em comparação com bibliotecas estáticas é que o público ficheiros de cabeçalho e ativos fica incluído no Quadro.Se você tem vindo a fazer este tipo de coisas com versões anteriores do Xcode, você vai se lembrar da dor com fornecimento público cabeçalhos e, em seguida, adicionar o caminho de pesquisa dentro do Xcode as configurações de e para activos tivemos que passar em um pacote separado.

Esta única desvantagem de usar Frameworks que eu vejo é que agora não podemos simplesmente usar lipo para gerar uma gordura biblioteca estática para todos os tipos de arquiteturas.

IMO a Apple está usando a palavra 'dinâmico' sugerir 'independente'.

Assista WWDC2014 - Edifício Moderno Quadros para obter mais detalhes.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top