Como os objetos são definidos em um arquivo XIB e como eles são criados em tempo de execução?
-
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?
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 é:
- Criar arquivos xib. Se você usar o controle de versão, estes são o que você diga a ele para seguir.
- Certifique-se de que eles estão em .lproj pastas (de modo que localizadores pode criar versões localizadas do deles).
- 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.