Como os objetos são definidos em um arquivo XIB e como eles são criados em tempo de execução?

StackOverflow https://stackoverflow.com/questions/1453807

  •  12-09-2019
  •  | 
  •  

Pergunta

I acabou de comprar um Mac e estou começando a explorar o desenvolvimento de software usando Cacau e Objective-C usando o Xcode na neve saltou, provenientes de um forte Microsoft e C # backgrund

uso Toda a documentação e tutoriais eu li Interface Builder e XCode para criar aplicativos com interfaces de usuário. O meu entendimento atual é que objetos criados pelo Interface Builder são de alguma forma definido em um arquivo .xib e criado em tempo de execução.

Um pacote contém código e os recursos que o acompanham. É correto dizer que um arquivo .xib é na verdade um pacote que contém recursos de interface do usuário e que este pacote é carregado (é que o verbo correto?) Em instâncias de tempo de execução e de objetos são criados?

Se o abive é verdade existe alguma maneira eu posso ver o código gerado pelo Interface Builder e o ponto no código onde esses objetos são criados, sem ver pelo menos uma vez eu sinto que há um monte de "mágica" acontecer e isso não está me ajudando nesta fase do meu aprendizado.

Existe algo que eu deveria estar lendo para compreender a mudança de paradigma aparente entre C # / WinForms e Objective-C / Mac OS / cacau?

Foi útil?

Solução

É correto dizer que um arquivo .xib é na verdade um pacote que contém recursos de interface do usuário e que este pacote é carregado (é que o verbo correto?) Em instâncias de tempo de execução e de objetos são criados?

No. Um pacote é um dos várias estruturas de diretórios específica , e um arquivo xib é um regular arquivo, e não um diretório.

Um arquivo xib contém descrições de objetos. Quando você compilar o nib (geralmente como parte da construção de sua aplicação), o compilador nib lê no xib, cria os objetos como descrito nele, e arquivos-los em uma ponta, que não é um pacote também.

Quando você carrega o bico em sua aplicação, o carregador nib Desarquiva os objetos e assegura todas as tomadas estão ligadas como eram no IB entre seus objetos e de e para o dono do arquivo.

Não se preocupe com detalhes de implementação. Nibs apenas trabalhar. Tudo que você tem a fazer é:

  1. Criar arquivos xib. Se você usar o controle de versão, estes são o que você diga a ele para seguir.
  2. Certifique-se de que eles estão em .lproj pastas (de modo que localizadores pode criar versões localizadas do deles).
  3. Let Xcode lidar com o resto.

Outras dicas

A principal coisa a perceber é que não há nenhum código no sentido normal ... pelo menos, recursos de interface do usuário nib / xib não são simplesmente contruscts de código Objective-C que são meramente gerados pelo Inteface Builder. Estes são objetos que são uma espécie de "congelado" nas pontas e "descongelado" quando necessário pelos aplicativos (ou acordado, eu acho, como o awakeFromNib sugeriria). Eles são arquivados em xml / form plist / etc, em vez de ser uma estrutura para gerar código Objective-C fonte.

Considere-os objetos que tenham sido serializado como XML ou outros dados.

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