Ciao ixamit,
esatto, il problema è proprio che
in Objective-C mancano i namespace per cui avendo a che fare con migliaia di classi presenti nei vari framework ci si scontra col problema della collisione dei nomi.
Per quanto riguarda il significato di NS quoto le risposte di toti81 e Toki:
toti81 ha scritto:
NS deriva da NEXTSTEP, l'azienda di Steve Jobs (molto prima di apple) dalla quale è nato obj-c, e quasi per una forma di rispetto che ora si mette il prefisso NS prima di molti comandi
Toki ha scritto:
Il NeXTSTEP, fu il sistema operativo della NeXT da cui derivò Mac OS X.
Cronologicamente Steve Jobs, fondò prima la Apple, poi fu allontanato dal suo stesso amministratore delegato e fondò la NeXTSTEP Computer.
In seguito fu la stessa Apple in grave crisi che per risollevarsi fece rientrare Steve Jobs e acquisì la Next Computer.
A questo link si possono vedere i framework e le classi di iOS.
I framework sono decine (quasi 50) e ognuno contiene decine di classi (Foundation ne contiene circa 200), per cui le classi sono migliaia, quindi quando nel tuo progetto crei una classe ti si pone il problema di non usare un nome già usato. L' uso dei prefissi risolve il problema.
È una buona pratica attribuire un prefisso anche alle proprie classi, tanto che quando apri un nuovo progetto XCode ti propone di indicare un nome di un prefisso.
Sapete se esiste qualche convenzione da seguire quando si sceglie un prefisso per le proprie classi?