Nem sempre, mas na maioria das vezes, você encontrará projetos de código aberto para iOS ou Mac OS X com nomes começando pelas letras iniciais do nome e sobrenome do autor. Se um projeto fosse de autoria de Nick Leblanc, o projeto seria lido como NLMyProject
.
Exemplos:
- RMSwipeTableViewCell por Rune Madsen,
- EBCardCollectionViewLayout de Ezequiel Becerra,
- SDiPhoneVersion de Sebastian Dobrincu,
- LNNotificationsUI de Leo Natan.
Onde é que isso veio? Uma pessoa escreveu dessa maneira primeiro e depois todo mundo seguiu?
Não consegui encontrar nada sobre isso, mesmo nas Diretrizes da Apple . Esse idioma está escrito em algum lugar?
ios
objective-c
apple
conventions
namespace
Stéphane Bruckert
fonte
fonte
;-)
Respostas:
O objetivo C, como C, não possui espaços para nome. Isso significa que se alguém já definiu uma função
foo
ou classeBar
, ela deve ser globalmente única e você não pode defini-la. Isso pode resultar em muitas dores de cabeça quando você tem seu código e depois adiciona outra biblioteca e, de repente, as coisas acontecem em lugares estranhos.Não é uma diretriz apresentada pela Apple para este na programação com Objective C: Convenções seção da biblioteca desenvolvedor iOS:
Portanto, as bibliotecas mencionadas por você quebram essa convenção, mas ficam no coração do problema da falta de espaço para nome no objetivo C.
Leitura adicional
Namespacing por NSHipster
Qual é a melhor maneira de resolver uma colisão de espaço para nome Objective-C?
Como se usa namespaces no código objetivo-c do iOS?
fonte
@
é usado porque não é usado em C ... tentar adicionar outro operador que não quebra outras coisas é um desafio.