Kakao / Kakao Touch Birçok sınıflar NS öneki var. Bu ne demek?
NS öneki ne anlama geliyor?
Kakao çerçeveler için orijinal kod geldi NeXTSTEP'in kütüphaneleri Vakfı ve AppKit (o isimler hala Apple'ın Kakao çerçeveler tarafından kullanılan) ve NextStep mühendisleri NS ile onların sembollerini öneki için seçti.
Objective-C C ++ gibi ad alanlarını yok dolayısıyla C bir uzantısıdır ve Çünkü çarpışır kalmamak için, semboller benzersiz bir önek ile eklenmeli. Bu çerçevede tanımlanmış semboller için özellikle önemlidir.
Bir uygulamayı yazıyorsanız Kodunuzun sembollerini kullanmak hiç yalnız muhtemeldir öyle ki, bu konuda endişelenmenize gerek yok. Eğer başkalarının kullanımı için bir çerçeve veya kitaplık yazıyoruz Ama eğer aynı zamanda eşsiz öneki ile semboller önek gerekir. CocoaDev bir sayfası vardır Kakao toplumda birçok geliştiricilerin "seçilmiş" önekleri listeledik. Ayrıca bulabilirsiniz bu SO tartışma yararlı.
Bu geliyor NeXTSTEP'in miras.
N ext S TEP veya N eXTSTEP / S soruyorsun kim bağlı un.
Güneş bir süre OpenStep'in içinde oldukça büyük bir yatırım vardı. Güneş geri sonra vakıf olarak bilinmemektedir olmasına rağmen, vakıf resim şeylerin çoğunu katılmasından önce, öneki olan NX için, N e X T ve bazen güneş girmiş hemen önce resim her şeyi yeniden adlandırıldı NS . S büyük olasılıkla daha sonra Sun için durmak ama güneş genel uzlaşma adım attıktan sonra onların katılımını onurlandırmak için Sun için durdu olmasıydı vermedi.
Aslında bunun için bir başvuru vardı ama şu anda bulamıyorum. Tekrar bulduğunda / eğer yayınında güncellenir.
Bu NextStep (= NS) mirasıdır. NeXT 1985 yılında Apple çıkın sonra Steve Jobs oluşan bilgisayar şirketi oldu ve NextStep Obj-C dili ve çalışma zamanı ile birlikte meydana işletim sistemi var (UNIX tabanlı) idi. o kütüphaneleri ve araçları bulunuyor yanı sıra, son NextStep sonra sırayla sonraki Kakao oldu (ayrıca NeXT Sun ile birlikte geliştirdiği bir API üzerinde adıydı) OpenStep olarak değiştirildi.
Bu farklı isimler, bir açıklama için bu deneyin aslında (bazı isimlerin sadece farklı olan karakterleri .. büyük veya küçük harf özellikle beri) oldukça kafa karıştırıcı:
Apple'ın geliştirici Dokümanlar:
Tarihsel Not: Eğer bir NS ön eki karşılaşmak sınıfların neden bu kadar çok merak ediyorsanız, bunun nedeni Kakao ve Kakao Touch geçmiş tarihinin bu. Kakao NeXTStep'in işletim sistemi için uygulamalar oluşturmak için kullanılan toplanan çerçeveler olarak başladı. Elma 1996 yılında geri NeXT'i satın aldığımızda, NeXTStep'in çoğunu mevcut sınıf adları dahil, OS X dahil oldu. Kakao dokunun Kakao IOS eşdeğer olarak tanıtılan; Ayrıca her platforma özgü sınıfların çok sayıda olmasına rağmen bazı sınıfları, Kakao ve Kakao Dokunmatik hem de mevcuttur. (IOS'ta Kullanıcı Arayüzü öğeleri için) NS ve UI gibi iki harfli önekler Apple tarafından kullanılmak için ayrılmıştır.
Kaynak: Objective-C ile Programlama
Gönderen Cocoa_ (API) Vikipedi :
(vurgu eklendi)
Kakao sınıflar kısaltması ile başlar "NS" (biri için ayakta OpenStep'in NeXT-Güneş yaratılması veya OpenStep'in çerçevesinde, orijinal tescilli dönem için NeXTSTEP'in NSString, NSArray vb:)
Vakıf Kiti , ya da daha yaygın olarak basitçe Vakfı , ilk göründü OpenStep'in . Mac OS X'te Çekirdek Vakfı dayanmaktadır. Hazırlık dize ve değer manipülasyonu, konteynerler ve iterasyon dağıtık bilgisayar, çalışma döngüleri ve direkt olarak bir grafik kullanıcı arayüzü bağlı olmayan diğer fonksiyonları sağlayan genel bir nesne yönelimli kütüphane. "NS" öneki çerçevesinde tüm sınıf ve sabitleri için kullanılan, gelir ortaklaşa tarafından geliştirilmiştir Kakao OpenStep'in mirası, NeXT ve Güneş .
(NeXTStep işletim sistemine karşı) aşağıdaki NextStep API tanımlayan edildi, bunlar NXConstantString olarak önek NX kullanılır. Güneş'e ile OpenStep'in şartname yazma durumunda bunlar, NSObject olduğu gibi NS öneki kullanılır (OpenStep'in işletim sistemiyle karıştırılmamalıdır).
Bill Bumgarner bilmelidir aka @bbum, , yayınlanan 2005 yılında CocoaBuilder posta listesine :
Güneş NS öneki sonra biraz oyuna gelmişti resmi girdi. NS öneki (ayrıca OpenStep olarak da bilinir) NeXTSTEP'in 4.0'a NeXTSTEP'in 3,0 ila Taşıma sırasında ortak API'ler de ortaya çıktı. 4.0 için önce, sembollerin bir avuç NX öneki kullanılır, ancak sistem kütüphaneleri tarafından sağlanan en sınıfları hiç öneki değildi - List vb Hashtable, Görünüm, ...
Herkesin (NeXT'in) önek NX 1993/1994 yılına kadar kullanıldı kabul eder ve bu gibi görünüyor Apple'ın dokümanlar ki :
1994 Eylül ayında yayınlanan resmi OpenStep'in API, “NS” öneki kullanmak Vakfı ve Uygulama Kiti ve birinci arasındaki API bölmek ilk oldu.
Temelde NS gelen N ext S TEP Apple İleri edinilen Mac OS X oldu orijinal işletim sistemi.
Ben başka bir şey açıklamak istiyorum ve tam olarak ihtiyaç duyulan bu yüzden.
C ++ ad vardır ve hemen hemen her şey gider std
Eğer std nedeni budur :: dize.
Eğer bir hata yapmak ve sistemin bir çelişmeden kendi sınıf dizesi yazabilir için zor, böylece ad alanları kullanılır.
Objective-C C üst kümesidir, ancak ad alanları içermez ve tüm sistem sınıfları yukarıdaki aynı nedenden dolayı NS veya başka garip preffix ile preffixed edilir.
Bu şey, tüm DirectX sınıfları ile preffixed nasıl aynıdır D3D ve nasıl tüm OpenGL sınıfları ile preffixed edilir gl .
Bu kullanmaması gerektiğini ifade eder NS kendi sınıfları isim ve gördüğünüz zaman NS , CA Core animasyon veya CG çekirdek grafikleri de bu sistem çerçevesinde yapılan bir çağrı olduğunu anlıyoruz.
Swift değişiklikler bu kongre, Swift Namespacing destekler ve NS eşdeğerlerine dize gibi çekirdek türlerini haritalar çünkü.
Bu NeXTSTEP'in mirasından var
Sonraki adım. Bu amaç-c (sonradan os x) NeXTStep'i yazmak için NeXT tarafından oluşturulduğunda gelen bir holdover ve ilişkili tüm uygulamalar, vb Bunlar orijinal C açılımları parçası olmayan öğelerini temsil var, örneğin, hayır 'dizesi' var eleman C, amaç-c böylece, ek bir temel elemanı 'NSString' bulunuyor.













