Muitas classes no Cocoa / Cocoa Touch têm o prefixo NS. O que isso significa?
ios
objective-c
cocoa
cocoa-touch
Martin08
fonte
fonte
O código original para as estruturas Cocoa veio da NeXTSTEP library Foundation e do AppKit (esses nomes ainda são usados pelas estruturas Cocoa da Apple), e os engenheiros da NextStep optaram por prefixar seus símbolos no NS.
Como o Objective-C é uma extensão de C e, portanto, não possui espaços para nome como no C ++, os símbolos devem ser prefixados com um prefixo exclusivo para que não colidam. Isso é particularmente importante para os símbolos definidos em uma estrutura.
Se você estiver escrevendo um aplicativo, de forma que seu código provavelmente use seus símbolos, não precisará se preocupar com isso. Mas se você estiver escrevendo uma estrutura ou biblioteca para uso de outras pessoas, também deverá prefixar seus símbolos com um prefixo exclusivo. O CocoaDev possui uma página na qual muitos desenvolvedores da comunidade Cocoa listaram seus prefixos "escolhidos". Você também pode achar útil essa discussão sobre SO .
fonte
N eXT S TEP ou N eXTSTEP / S un, dependendo de quem você está perguntando.
A Sun teve um investimento bastante grande no OpenStep por um tempo. Antes de a Sun entrar em cena, a maioria das coisas na fundação, embora não fosse conhecida como fundação naquela época, era o prefixo NX , para N e X T, e algum tempo antes da Sun entrar em cena, tudo foi renomeado para NS . O S provavelmente não representam Sun, em seguida, mas depois de Sun entrou em cena o consenso geral era de que ele representa o Sun para honrar o seu envolvimento.
Na verdade, eu tinha uma referência para isso, mas não consigo encontrá-la agora. Atualizarei a postagem se / quando a encontrar novamente.
fonte
É a herança NextStep (= NS). A NeXT foi a empresa de computadores que Steve Jobs formou depois que ele saiu da Apple em 1985, e o NextStep era seu sistema operacional (baseado em UNIX) junto com a linguagem Obj-C e o tempo de execução. Juntamente com suas bibliotecas e ferramentas, o NextStep foi renomeado para OpenStep (que também era o nome de uma API que a NeXT desenvolveu junto com a Sun), que por sua vez se tornou Cocoa.
Esses nomes diferentes são realmente bastante confusos (especialmente porque alguns dos nomes diferem apenas nos caracteres em maiúsculas ou minúsculas ..), tente isso para obter uma explicação:
TheMerger OpenstepConfusion
fonte
Dos documentos de desenvolvedor da Apple:
Fonte: Programação com Objective-C
fonte
De Cocoa_ (API) Wikipedia :
(enfase adicionada)
fonte
Quando a NeXT definia a API NextStep (em oposição ao sistema operacional NEXTSTEP), eles usavam o prefixo NX, como no NXConstantString. Quando eles estavam escrevendo a especificação OpenStep com a Sun (para não confundir com o sistema operacional OPENSTEP), eles usaram o prefixo NS, como no NSObject.
fonte
Basicamente, o NS vem do N ext S TEP, o sistema operacional original que se tornou o Mac OS X quando a Apple adquiriu o Next.
Quero explicar outra coisa e é por isso que exatamente é necessário.
Em C ++, existem namespaces e quase tudo ocorre em std
É por isso que você tem std :: string.
Os espaços para nome são usados, portanto é mais difícil cometer um erro e você pode escrever sua própria sequência de classes sem entrar em conflito com a do sistema.
Objective-C é um superconjunto de C, mas não inclui namespaces e, pelo mesmo motivo, acima de todas as classes de sistema são prefixadas com NS ou algum outro prefixo estranho.
É o mesmo de como todas as classes do DirectX são prefixadas com o D3D e como todas as classes do OpenGL são prefixadas com o gl .
Isso significa que você não deve usar o NS para nomear suas próprias classes e, quando vê NS , CA no Core Animation ou CG no Core Graphics, entende que essa é uma chamada para uma estrutura do sistema.
O Swift altera essa convenção, porque o Swift suporta espaçamento de nomes e mapeia seus tipos principais, como String, para os equivalentes do NS.
fonte
Bill Bumgarner aka @bbum, que deveria saber , postou na lista de discussão CocoaBuilder em 2005 :
Parece que todos concordam que o prefixo NX (para o NeXT) foi usado até 1993/1994, e os documentos da Apple dizem :
fonte