Ce înseamnă prefixul NS?

voturi
501

Multe clase în Cocoa / Cocoa Touch au prefixul NS. Ce înseamnă?

Întrebat 23/01/2009 la 18:22
sursa de către utilizator
În alte limbi...                            


11 răspunsuri

voturi
736

Codul original , pentru cadrele de cacao a venit de la NeXTStep Fundația biblioteci și AppKit (aceste nume sunt încă utilizate de către cadrele de cacao Apple), iar inginerii NeXTStep au ales să prefixa simbolurile lor cu NS.

Deoarece Objective-C este o extensie a C și, prin urmare, nu are namespace ca in C ++, simbolurile trebuie să fie prefixat cu un prefix unic, astfel încât acestea să nu se ciocnesc. Acest lucru este deosebit de important pentru simboluri definite într-un cadru.

Dacă scrieți o aplicație, astfel încât codul este doar probabil ca vreodată să folosească simbolurile, nu trebuie să vă faceți griji cu privire la acest lucru. Dar , dacă scrii un cadru sau o bibliotecă pentru utilizarea altora, ar trebui ca prefix , de asemenea , simbolurile , cu un prefix unic. CocoaDev are o pagină în cazul în care mulți dezvoltatori din comunitatea de cacao au listat lor prefixe „alese“. Ați putea găsi , de asemenea , această discuție SO ajutor.

Publicat 23/01/2009 la 18:52
sursa de către utilizator

voturi
390

Este din NeXTStep patrimoniul.

Publicat 23/01/2009 la 18:24
sursa de către utilizator

voturi
140

N Ext S Transatlantice sau N eXTSTEP / S onu în funcție de cine ceri.

Sun a avut o investiție destul de mare în OpenStep pentru o vreme. Înainte de Soare a intrat imaginea de cele mai multe lucruri în fundație, chiar dacă nu a fost cunoscut ca fundament atunci, a fost prefixat NX , pentru N e X T, și uneori chiar înainte de Soare a intrat în imagine totul a fost redenumit NS . S , cel mai probabil nu a stat pentru Sun atunci , dar după ce Soarele a urcat în consens general a fost că a fost pentru Sun să -și onoreze implicarea lor.

Am avut de fapt o referință pentru acest lucru, dar nu pot găsi chiar acum. Voi actualiza postul dacă / când l-am găsit din nou.

Publicat 23/01/2009 la 19:03
sursa de către utilizator

voturi
50

Este NextStep (= NS) patrimoniu. NeXT a fost compania de calculator pe care Steve Jobs a format dupa ce a renuntat la Apple în 1985, și a fost NextStep este sistemul de operare (UNIX), împreună cu limba Ob-C și durata de funcționare. Împreună cu ea de biblioteci și instrumente, NextStep mai târziu a fost redenumit OpenStep (care a fost, de asemenea, numele de pe un API care NeXT dezvoltat împreună cu Soare), care, la rândul său, mai târziu, a devenit cacao.

Aceste nume diferite sunt de fapt destul de confuze (mai ales că unele dintre numele diferă doar în care caracterele sunt majuscule sau minuscule ..), încercați acest lucru pentru o explicație:

OpenstepConfusion TheMerger

Publicat 23/01/2009 la 19:01
sursa de către utilizator

voturi
38

Din documentele pentru dezvoltatori Apple:

Notă istorică: Dacă vă întrebați de ce atât de mulți dintre clasele pe care le întâlniți au un prefix NS, este din cauza trecutului istoric de cacao și cacao Touch. Cacao a început viața ca cadrele colectate folosite pentru a construi aplicații pentru sistemul de operare NeXTStep. Când Apple a achiziționat NeXT înapoi în 1996, o mare parte din NeXTStep a fost încorporată în OS X, inclusiv numele de clasă existente. Cocoa Touch a fost introdus ca echivalentul iOS de cacao; unele clase sunt disponibile atât cacao și cacao Touch, deși există, de asemenea, un număr mare de clase unice pentru fiecare platformă. prefixe de două litere, cum ar fi NS si UI (pentru elemente de interfață de utilizator de pe iOS) sunt rezervate pentru a fi utilizate de către Apple.

Sursa: Programare cu Objective-C

Publicat 19/03/2013 la 05:53
sursa de către utilizator

voturi
21

De la Cocoa_ (API) Wikipedia :

(Subliniere adăugată)

Clase de cacao începe cu acronimul „NS“ ( în picioare , fie pentru crearea NeXT-Duminica a OpenStep , sau pentru termenul inițial de proprietate pentru cadrul OpenStep, NeXTStep ): NSString, NSArray, etc.

Fundația Kit , sau mai frecvent , pur și simplu Fundația , în primul rând a apărut în OpenStep . Pe Mac OS X, aceasta se bazează pe Core Foundation. Fundația este o bibliotecă generic orientat pe obiect furnizarea șir și valoare de manipulare, containere și iterație, calcul distribuit, bucle rula, și alte funcții care nu sunt legate direct de interfața grafică cu utilizatorul. Prefixul „NS“ , folosit pentru toate clasele și constante în cadrul, provine din patrimoniul OpenStep de cacao, care a fost dezvoltat în comun de către NeXT și Soare .

Publicat 27/10/2011 la 19:08
sursa de către utilizator

voturi
10

Atunci când au fost definirea NeXT API NextStep (spre deosebire de sistemul de operare NeXTStep), au folosit prefixul NX, la fel ca în NXConstantString. Când au fost scris caietul de sarcini OpenStep cu Sun (a nu se confunda cu sistemul de operare OpenStep) au folosit prefixul NS, la fel ca în NSObject.

Publicat 24/01/2009 la 03:32
sursa de către utilizator

voturi
6

Bill Bumgarner aka @bbum, care ar trebui să știe , postate pe lista de discuții CocoaBuilder în 2005 :

Sun a intrat imaginea un pic după prefixul NS a intra în joc. NS prefix apărut în API-uri publice în timpul trecerea de la NeXTStep 3.0 la NeXTStep 4.0 (de asemenea, cunoscut sub numele de OpenStep). Înainte de 4.0, o mână de simboluri utilizate prefixul NX, dar cele mai multe clase oferite de bibliotecile de sistem nu au fost deloc prefixat - List, Hashtable, View, etc ...

Se pare că toată lumea este de acord că NX prefix (pentru NeXT) a fost utilizat până în 1993/1994, iar documentele Apple spune :

API-ul oficial OpenStep, publicat în septembrie 1994, a fost primul care a împărțit API între Fundația și Kit Application și primul care a folosit „NS“ prefixul.

Publicat 05/09/2015 la 04:04
sursa de către utilizator

voturi
5

Practic NS vine de la N ext S Transatlantice, sistemul de operare original care a devenit Mac OS X , atunci când Apple a achiziționat următor.

Vreau să explic altceva și acest lucru este exact de ce este nevoie.

În C ++ există spații de nume și aproape orice merge în std

Acesta este motivul pentru care ați std :: string.

Spații de nume sunt folosite asa ca e mai greu pentru tine de a face o greșeală și vă puteți scrie propriul șir de clasă, fără conflict cu sistemul de unul.

Obiectiv-C este superset al C, dar nu include namespace și pentru același motiv mai presus de toate clasele de sistem sunt preffixed cu NS sau alte preffix ciudat.

Acest lucru este la fel de modul în care toate clasele de DirectX sunt preffixed cu D3D și modul în care toate clasele OpenGL sunt preffixed cu gl .

Acest lucru înseamnă că nu trebuie să folosiți NS pentru a denumi clase proprii și atunci când vedeți NS , CA în Core animație sau CG în Core Graphics înțelegeți că acest lucru este un apel la un cadru de sistem.

Modificări Swift această convenție, deoarece Swift și susține spațiu de nume hărți tipurile sale de bază cum ar fi String la echivalentele NS.

Publicat 08/01/2017 la 12:27
sursa de către utilizator

voturi
1

Este din patrimoniul NeXTStep

Publicat 09/06/2019 la 12:30
sursa de către utilizator

voturi
1

Urmatorul pas. Este o relicvă din momentul în care obiectivul-C a fost creat de NeXT pentru a scrie NextStep (mai târziu OS X) și toate aplicațiile asociate etc. Acestea reprezintă elemente care nu fac parte din original, C stau la baza, de exemplu, nu există nici un „șir“ element C, astfel încât în ​​obiectiv-c, este un element suplimentar fundație „NSString“.

Publicat 21/06/2017 la 06:32
sursa de către utilizator

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more