Co NS prefix znamená?

hlasů
501

Mnoho tříd Cocoa / Cocoa kontaktu mají NS předponu. Co to znamená?

Položena 23/01/2009 v 18:22
zdroj uživatelem
V jiných jazycích...                            


11 odpovědí

hlasů
736

Původní kód rámcích kakao pochází z NeXTStep Nadace knihoven a AppKit (jejichž názvy jsou stále používány rámcích kakao Apple) a inženýři NeXTStep rozhodli prefix jejich symboly s NS.

Vzhledem k tomu, Objective-C je rozšíření C a tudíž nemá jmenné prostory jako v jazyce C ++, musí být symboly předponou s jedinečnou předponu tak, aby nedošlo ke kolizi. To je zvláště důležité pro symboly definované v rámci.

Pokud píšete aplikaci tak, že váš kód je jen pravděpodobné, že někdy používat symboly, nemusíte se starat o to. Ale pokud píšete rámec nebo knihovny pro použití druhých, měli byste také prefix své symboly, s unikátním prefixem. CocoaDev má stránku , kde mnoho vývojářů v komunitě Cocoa již uveden jejich „vyvolených“ předpony. Můžete také najít tato diskuse SO užitečné.

Odpovězeno 23/01/2009 v 18:52
zdroj uživatelem

hlasů
390

Je to z NeXTSTEP dědictví.

Odpovězeno 23/01/2009 v 18:24
zdroj uživatelem

hlasů
140

N ext S TEP nebo N eXTSTEP / S un v závislosti na tom, kdo se ptá.

Sun měl poměrně velké investice do OpenStep na chvíli. Před Sun vstoupila do obrazu většinu věcí v základech, i když to nebylo známo jako základ tehdy, byla předponou NX , pro N e x T, a někdy těsně před Sun vstoupil snímek všechno bylo přejmenováno na NS . S největší pravděpodobností nestál za Sluncem pak ale poté, co Slunce vstoupil do obecného konsensu bylo, že to stálo za Sluncem ctít jejich zapojení.

Vlastně jsem měl referenci pro to, ale nemohu ho najít hned. Budu aktualizovat příspěvek, pokud / když jsem to znovu najít.

Odpovězeno 23/01/2009 v 19:03
zdroj uživatelem

hlasů
50

Je to NextStep (= NS) dědictví. NeXT byla počítačová firma, která Steve Jobs vytvořena poté, co opustil Apple v roce 1985, a NextStep bylo to operační systém (UNIX based) společně s jazykem Obj-C a běhu. Spolu s jeho knihovny a nástroje, NextStep byl později přejmenován OpenStep (který byl také jméno na API, které NeXT vyvinutý společně se společností Sun Microsystems), což se později stal Cocoa.

Tyto různé názvy jsou vlastně docela matoucí (zejména proto, že některá jména se liší pouze ve kterém znaky jsou velká nebo malá písmena ..), zkuste toto vysvětlení:

TheMerger OpenstepConfusion

Odpovězeno 23/01/2009 v 19:01
zdroj uživatelem

hlasů
38

Od vývojáře dokumentů Apple:

Historická Poznámka: Pokud jste zvědaví, proč tak mnoho tříd narazíte mít NS prefix, je to proto, že z minulé historie kakao a kakaové Touch. Kakao začal život jako sebraných rámců používaných pro sestavení aplikací pro operační systém NeXTStep. Když Apple koupil NeXT v roce 1996, hodně z NeXTStep byl včleněn do OS X, včetně stávajících názvů tříd. Kakao Touch představen jako IOS ekvivalent kakao; Některé třídy jsou k dispozici v obou kakao a kakaové kontaktu, ačkoli tam jsou také velké množství tříd jedinečné pro každou platformu. Dvoupísmenné předpony jako NS a UI (pro prvky uživatelského rozhraní v systému iOS) jsou rezervovány pro použití Apple.

Zdroj: Programování v Objective-C

Odpovězeno 19/03/2013 v 05:53
zdroj uživatelem

hlasů
21

Od Cocoa_ (API) Wikipedia :

(Zvýraznění)

Kakaové tříd začínají zkratka „NS“ (stání buď pro vytvoření nové slunce OpenStep , nebo pro původní proprietární termín pro OpenStep rámci NeXTSTEP ): NSString, NSArray, atd

Foundation Kit , nebo častěji prostě Foundation , se poprvé objevil v OpenStep . V systému Mac OS X, je založen na klíčové Foundation. Založení je obecný objektově orientovaná knihovna, která poskytuje řetězec a hodnota manipulaci, kontejnery a iterace, distribuované výpočty, spustit smyčky, a další funkce, které nejsou přímo vázány na grafickém uživatelském rozhraní. Dále jen „NS“ prefix , který se používá u všech tříd a konstant v rámci pochází z kakaových je OPENSTEP dědictví, který byl společně vyvinutý NeXT a Sluncem .

Odpovězeno 27/10/2011 v 19:08
zdroj uživatelem

hlasů
10

Když byly pak definování API NeXTStep (na rozdíl od operačního systému NeXTStep), použili předponu NX, jako v NXConstantString. Když psali specifikaci OPENSTEP se společností Sun (neplést s operačním systémem OPENSTEP) použili NS předponu, jako v NSObject.

Odpovězeno 24/01/2009 v 03:32
zdroj uživatelem

hlasů
6

Bill Bumgarner aka @bbum, kteří by měli vědět , zveřejněné na mailing listu CocoaBuilder v roce 2005 :

Sun vstoupil snímek trochu po NS předponou přišel do hry. NS prefix přišel o veřejných API během přesunu z NeXTSTEPu 3,0 až 4,0 NeXTSTEPu (také známý jako OpenStep). Před 4,0 hrstka použitých symbolů NX předponu, ale většina tříd poskytované systémových knihoven nebyly předponou vůbec - List, Hashtable, View, atd ...

Zdá se, že všichni souhlasí s tím, že prefix NX (pro příští) byl používán až 1993/1994 a Apple dokumenty říkají :

Oficiální OpenStep API, byla zveřejněna v září 1994, byl první, kdo rozdělit API mezi nadací a Kit Application a první používat „NS“ předponu.

Odpovězeno 05/09/2015 v 04:04
zdroj uživatelem

hlasů
5

V podstatě NS pochází z N ext S TEP, původní operační systém, který se stal Mac OS X, když Apple získal Next.

Chci vysvětlit něco jiného, ​​a to je důvod, proč přesně je to potřeba.

V jazyce C ++ existují jmenné prostory a téměř vše v std

To je důvod, proč jste std :: string.

Jmenné prostory jsou používány tak, že je to těžší pro vás udělat chybu a můžete napsat svůj vlastní třídní řetězec, aniž by v rozporu se systémem jedné.

Objective-C je nadstavbou C, ale neobsahuje jmenné prostory, a to ze stejného důvodu výše všech tříd soustav, preffixed s NS nebo nějakým jiným podivným preffix.

To, co je stejné, jak jsou všechna rozhraní DirectX třídy preffixed s D3D a jak všechny OpenGL třídy jsou preffixed s gl .

To znamená, že byste neměli používat NS pojmenovat své vlastní třídy a když vidíte NS , CA Core Animation nebo CG Core Graphics jste pochopili, že se jedná o volání do rámce systému.

Swift změny této konvence, protože Swift podporuje jmenného prostoru a mapuje jeho základní typy jako řetězec, který ekvivalenty NS.

Odpovězeno 08/01/2017 v 12:27
zdroj uživatelem

hlasů
1

Je to z NeXTSTEP dědictví

Odpovězeno 09/06/2019 v 12:30
zdroj uživatelem

hlasů
1

Další krok. Je to pozůstatek z doby, kdy byl cíl-c vytvořený Vedle toho napsat nextStep (později OS X) a všechny související aplikace, atd. Ty představují prvky, které nejsou součástí původního C oporou, například, není tam žádný ‚string‘ prvkem C, takže v Objective-C, je to další základ prvek ‚NSString‘.

Odpovězeno 21/06/2017 v 06:32
zdroj uživatelem

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