Pergunta

Eu estou querendo saber o que decide se você tem permissão para usar <Header.h> ou "Header.h" quando você importar arquivos em Objective-C.Até agora a minha observação foi que você use aspas "" para arquivos em seu projeto que você tem a implementação de origem e parênteses em ângulo <> quando você está fazendo referência a uma biblioteca ou framework.

Mas como exatamente isso funciona?O que eu teria que fazer para obter o meu próprio classes para usar os parênteses?Agora, o Xcode não me permitem fazer isso para o meu próprio cabeçalhos.

Também, procurando em alguns quadros de cabeçalhos, eu vejo que os cabeçalhos de referência de uns aos outros com <frameworkname/file.h>.Como funciona que trabalho?Ele se parece muito com pacotes em Java, mas até onde eu sei, não há tal coisa como um pacote em Objective-C.

Foi útil?

Solução

Objective-C tem isso em comum com C/C ++; O formulário citado é para "local" inclui arquivos (você precisa especificar o caminho relativo do arquivo atual, por exemplo #include "headers/my_header.h"), enquanto o formulário de colacket ângulo é para "global" inclui-aqueles encontrados em algum lugar no caminho de inclusão passado para o compilador (por exemplo, #include <math.h>).

Então, para que seus próprios cabeçalhos usem < > não " " Você precisa passar o parente ou o caminho absoluto para o seu diretório de cabeçalho para o compilador. Ver "Como adicionar um caminho de incluir global para xcode" Para obter informações sobre como fazer isso no Xcode.

Ver Esta página do MSDN para mais informações.

Outras dicas

Em C a convenção é que arquivos de cabeçalho em <> suporte de são pesquisados no 'sistema' diretórios e "" no usuário ou diretórios locais.

A definição de sistema e local é um pouco vago, eu acho.Eu acredito que ele procura em diretórios do sistema no caminho de incluir ou em opções cppflags e local de diretório ou diretório especificado com a opção-I do compilador são procurados "do cabeçalho.h" arquivos.

Eu suponho que ele funciona da mesma forma para Objective-C.

Para importar suas próprias classes usando "<>", você deve colocar os arquivos de cabeçalho (*.h) na pasta Lib do compilador ou definir uma variável de sistema para sua pasta lib.

Ou defina Always Search User Path para YES para que você possa usar suportes de ângulo.

Com suportes de ângulo, por exemplo <Foundation/Foundation.h> você importa arquivos do sistema.

Você usa citações duplas "Person.h" Para importar arquivos locais (arquivos que você criou) e informar ao compilador onde procurá -los.

"" - Quotation marksProcure o arquivo nomeado na mesma pasta que este arquivo (o .m arquivo no qual ocorre a linha #import).

<> - Angle bracketsProcure o arquivo nomeado entre os vários caminhos de pesquisa de cabeçalho fornecidos nas configurações de construção. (Esses caminhos de pesquisa estão definidos para você automaticamente e você normalmente não precisará modificá -los.)

Em geral, você usará suportes de ângulo para se referir a um arquivo de cabeçalho de propriedade da API de cacau e aspas para se referir a um arquivo de cabeçalho que você escreveu. Se você estiver curioso para saber o que uma diretiva #Import importa, selecione -a (no xcode) e escolha Arquivo → Abra rapidamente para exibir o conteúdo do arquivo de cabeçalho designado.

Consulte Mais informação aqui

Acabou de tropeçar no mesmo problema, existem 2 tipos de caminhos de pesquisa é o Xcode:

User Header Search Paths
Header Search Paths

Se você adicionar seu próprio incluir pastas nos caminhos de pesquisa de cabeçalho, poderá usar suportes angulares sem nenhum problema.

O QUE É ARQUIVO DE CABEÇALHO ?Arquivos de cabeçalho contém definições de funções e variáveis que podem ser incorporados em qualquer programa em C usando o pré-processador #include.Arquivos de cabeçalho padrão são fornecidos com cada compilador, e cobrem uma gama de áreas, manipulação de cadeias de caracteres, matemáticos, conversão de dados, impressão e leitura de variáveis.Ex- #include conter a informação sobre a entrada, como scanf(),e colocar para fora como a função printf() e etc, em um compilador.

INCLUEM

1) #INCLUDE:- Ele é um pré-processador que o processo, antes do processo da função principal.A principal obra do pré-processador é para inicializar o ambiente de programa que eu.e que é o programa com o arquivo de cabeçalho.2).h:- (Arquivo de cabeçalho) Um arquivo de cabeçalho é um arquivo com a extensão .h-que contém C função de declarações e definições de macro e para ser compartilhado entre vários arquivos de origem.Q) Existem dois tipos de arquivos de cabeçalho:os arquivos que o programador escreve e os arquivos que vêm com o seu compilador ?A)Em um colchetes angulares Angular-suporte formulário é para "global" inclui-aqueles encontrados em algum lugar no caminho de incluir passados para o compilador (por exemplo,#include) Ele é usado para a utilização da biblioteca de função que está tudo pronto definir no compilador.Em C a convenção é que arquivos de cabeçalho em <> suporte de são pesquisados no 'sistema' diretórios B) aspas:- "cabeçalho.h" citado formulário é para "local" inclui de arquivos (você precisa especificar o caminho relativo do arquivo atual, por exemplo,#include "cabeçalhos/my_header.h") Em C a convenção é que arquivos de cabeçalho em " o " são pesquisados no usuário ou diretórios locais.Em um arquivo para ser incluído em outro .(INCLUSÃO DE ARQUIVO).Ele pode ser usado em dois casos:Caso 1:Se temos um grande programa, o código é melhor dividido int vários arquivos diferentes,cada um contendo um conjunto de funções relacionadas.Caso 2:Existem algumas funções e micros definições que precisamos de, no máximo, em todos os programas que escrevemos.Ex

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