Sok osztályok Cocoa / Cocoa Touch van NS előtagot. Mit jelent?
Mit jelent az NS előtag jelent?
Az eredeti kódot az Kakaó keretek jöttek a NeXTSTEP könyvtárak Alapítvány és AppKit (ezeket a neveket használják még az Apple Cocoa kerettel), és a NextStep mérnökök úgy döntöttek, hogy előtag szimbólumok NS.
Mivel Objective-C egy kiterjesztése C, és így nem kell a névterek, mint C ++, szimbólumokat kell elé egy egyedi előtagot, hogy azok ne ütközzenek. Ez különösen fontos a szimbólumok meghatározott keretet.
Ha írunk egy alkalmazást, például, hogy a kód csak akkor valószínű, hogy valaha is használni a szimbólumok, akkor nem kell aggódnia. De ha írsz egy keretet vagy könyvtár mások használnak, akkor is előtagot a szimbólumok egy egyedi előtagot. CocoaDev egy oldal , ahol sok a fejlesztők a Cocoa közösség felsorolt saját „választott” előtagot. Ön is megtalálja ezt a SO vita hasznos.
Ez a NeXTSTEP örökséget.
N ext S TEP vagy N eXTSTEP / S un attól függően, ki kértek.
Sun volt egy elég nagy beruházás OpenStep egy darabig. Mielőtt Sun belépett a képbe a legtöbb dolog az alapítvány, annak ellenére, hogy még nem volt ismert, mint az alapítvány akkoriban volt előtaggal NX , az N e X T, és valamikor előtt Nap belépett a kép mindent átnevezték NS . Az S valószínűleg nem állt Sun majd, de miután a Sun belépett az általános konszenzus volt, hogy állt a Sun tiszteletére való részvétel.
Igazából volt egy utalás erre, de nem találom most. Fogom frissíteni a bejegyzést, ha / amikor találja meg újra.
Ez a NextStep (= NS) örökség. Aztán jött a számítógépes cég, hogy Steve Jobs alakult után kilépett az Apple 1985-ben, és NextStep volt ez az operációs rendszer (UNIX alapú) együtt Obj-C nyelv és futtató. Együtt ez a könyvtárak és eszközök, NextStep később átnevezték OpenStep (amely egyben a nevét egy API, hogy a jövő közösen kifejlesztett Sun), ami viszont később Kakaó.
Ezek a különböző nevek valójában elég zavaró (különösen azért, mert néhány, a nevek csak abban különbözik, mely karakterek kis- és nagybetűket ..), próbálja ki ezt a magyarázatot:
Apple fejlesztői dokumentációban:
Történelmi Megjegyzés: Ha kíváncsi, miért olyan sok az osztályok találkozik van egy NS előtagot, hogy azért, mert a múltbeli Kakaó és Cocoa Touch. Kakaó kezdődött az élet, mint az összegyűjtött keretek építésére használták alkalmazásokat az NeXTSTEP operációs rendszer. Amikor az Apple megvásárolta NeXT még 1996-ban, sok nextstep beépítette OS X, beleértve a meglévő osztályok neveit. Cocoa Touch vezették be az IOS egyenértékű Cocoa; Egyes osztályok állnak mind Kakaó és Cocoa Touch, bár ott is számos osztályok egyedi minden platformon. Kétbetűs előtagokat mint NS és UI (felhasználói felület elemeit iOS) számára vannak fenntartva az Apple.
Forrás: Programozás Objective-C
Tól Cocoa_ (API) Wikipedia :
(Kiemelés tőlünk)
Kakaó osztályok kezdődik rövidítéssel „NS” (álló vagy a NeXT-Sun létrehozása OpenStep , vagy az eredeti tulajdonosi kifejezés a OpenStep keret NeXTSTEP ): NSString, NSArray stb
Alapítvány Kit , vagy még gyakrabban egyszerűen Alapítvány , először OpenStep . A Mac OS X, ez alapján Core Foundation. Alapítvány egy általános objektum-orientált könyvtár biztosítja húr és az érték manipuláció, konténerek és ismétlések elosztott számítási, fuss hurkok, és egyéb funkciók, amelyek nem közvetlenül kapcsolódik a grafikus felhasználói felület. Az „NS” előtagot , használható minden osztály és állandók keretében származik kakaó OPENSTEP örökség, amelyet közösen fejlesztett NeXT és Naptól való .
Amikor legközelebb arra meghatározó NextStep API (ellentétben a NEXTSTEP operációs rendszer), használták az előtag NX, mint NXConstantString. Amikor írtak a OpenStep leírás Sun (nem tévesztendő össze a OPENSTEP operációs rendszer) használták az NS előtag, mint NSObject.
Bill Bumgarner aka @bbum, ki tudja , felkerül a CocoaBuilder levelezőlistán 2005 :
Nap belépett a kép egy kicsit, miután az NS előtag jött szóba. Az NS előtag jött a nyilvános API-kat a mozgás alatt a NeXTSTEP 3,0 NeXTSTEP 4,0 (más néven OpenStep). A 4.0, egy marék használt szimbólumok NX előtagot, de a legtöbb osztályok a rendszer által biztosított könyvtárak nem előzi meg minden - List, hash, kilátás, stb ...
Úgy tűnik, hogy mindenki egyetért abban, hogy az előtag NX (NeXT) használunk, amíg 1993/1994, és az Apple docs mondani :
A hivatalos OpenStep API szeptemberében közzétett 1994-es volt az első, hogy szét az API közötti Alapítvány és alkalmazás készlet, és az első, hogy a „NS” előtagot.
Alapvetően NS származik N ext S TEP, az eredeti operációs rendszer, amely vált a Mac OS X, amikor az Apple megszerezte a Tovább gombra.
Azt akarom megmagyarázni valami mást, és ez az, amiért éppen szükség van rá.
A C ++ vannak a névterek és szinte bármi a std
Ez miért van, std :: húr.
A névterek használják, így egyre nehezebb számodra, hogy hibázik, és írhat a saját osztálya húr nélkül ütköznek a rendszer egy.
Objective-C halmaza C, de nem tartalmazza a névterek és ugyanezen okból mindenekelőtt rendszer osztályok preffixed NS vagy valami más különös preffix.
Ez a dolog ugyanaz az, hogy az összes DirectX osztályok preffixed a D3D és OpenGL, hogy minden osztályban preffixed a gl .
Ez azt jelenti, hogy ne használja NS megnevezni saját osztályokat, és amikor megjelenik NS , CA Core Animation vagy CG Core Graphics érti, hogy ez egy felhívás egy olyan rendszer keretét.
Swift változások ezt a konvenciót, mert Swift támogatja névterek és térképek alapvető típusok, mint a karakterlánc az NS ekvivalens.
Ez a NeXTSTEP örökség
Következő lépés. Ez egy holdover amikor Objective-C által létrehozott melletti levelet nextstep (később OS X) és az összes kapcsolódó alkalmazások, stb Ők képviselik elemeket, amelyek nem részei az eredeti C alapja, például nincs „szöveg” elem C, így az objektív-c, ez egy újabb alapot elem „NSString”.













