NS öneki ne anlama geliyor?


Yanıtlar:


456

Bu geliyor NeXTSTEP'in miras.


7
... ya da belki NeXT / Sun mirası (Sun OpenStep konsorsiyumunda yer aldı)
Barry Wark

27
Evet tabi ki. Her şey diğer cevaplarda güzelce düzenlendi, bu yüzden bu bilgiyi benimkine kopyalamak için uğraşmadım. Bu birisini rahatsız ederse özür dilerim - Kabul edilen cevabın diğerlerinden birine değişip değişmediğini umursamıyorum (eğer mümkünse - bunu hiç kontrol etmediniz).
Olaf Kock

2
Daha fazla görmek istiyorum ama NeXTSTEP
Bagrat Kirakosian

784

Kakao çerçevelerinin orijinal kodu NeXTSTEP kütüphaneleri Vakfı ve AppKit'ten geldi (bu adlar hala Apple'ın Kakao çerçeveleri tarafından kullanılıyor) ve NextStep mühendisleri sembollerini NS ile önek olarak seçti.

Objective-C, C'nin bir uzantısı olduğundan ve C ++ gibi ad alanlarına sahip olmadığından, çarpışmamak için sembollerin benzersiz bir önekle öneki olması gerekir. Bu, özellikle bir çerçevede tanımlanan semboller için önemlidir.

Bir uygulama yazıyorsanız, kodunuzun sadece sembollerinizi kullanması muhtemeldir, bunun için endişelenmenize gerek yoktur. Ancak başkalarının kullanımı için bir çerçeve veya kütüphane yazıyorsanız, sembollerinize benzersiz bir önek eklemelisiniz. CocoaDev, Kakao topluluğundaki birçok geliştiricinin kendi "seçilmiş" öneklerini listelediği bir sayfaya sahiptir . Bu SO tartışmasını da yararlı bulabilirsiniz .


150

Kime sorduğunuza bağlı olarak N eXT S TEP veya N eXTSTEP / S un.

Sun'ın bir süre OpenStep'e oldukça büyük bir yatırımı vardı. Sun resme girmeden önce vakıftaki çoğu şey, o zamanlar vakıf olarak bilinmese de, N e X T için NX , NX'in önüne geçti ve Sun'a girmeden hemen önce her şey NS olarak yeniden adlandırıldı . 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 referansım vardı ama şu anda bulamıyorum. Yeniden bulduğumda / bulduğumda yayını güncelleyeceğim.


4
Aynı hikayeyi çok güvenilir bir kaynaktan duydum; Eminim ki buradaki en doğru cevap budur.
Tyler


@SimonWoodside Bağlantısı öldü.
Dinsdale


53

NextStep (= NS) mirasıdır. NeXT, Steve Jobs'un 1985'te Apple'dan ayrıldıktan sonra kurduğu bilgisayar şirketidir ve NextStep, Obj-C dili ve çalışma zamanı ile birlikte işletim sistemi (UNIX tabanlı) idi. Kütüphaneleri ve araçlarıyla birlikte NextStep daha sonra OpenStep olarak değiştirildi (bu aynı zamanda NeXT'in Sun ile birlikte geliştirdiği bir API'nin adıydı) ve daha sonra Kakao oldu.

Bu farklı adlar aslında oldukça kafa karıştırıcıdır (özellikle bazı isimler sadece karakterlerin büyük veya küçük olduğu durumlarda farklılık gösterir.), Bunu bir açıklama için deneyin:

TheMerger OpenstepConfusion


4
Apple'ın çeşitli nedenlerden dolayı onu kovduğuna yemin edebilirdim.
Monica'nın Davası

43

Apple'ın geliştirici belgelerinden:

Tarihsel Not: Karşılaştığınız sınıfların çoğunun neden NS önekine sahip olduğunu merak ediyorsanız, bunun nedeni kakao ve Kakao Dokunuşunun geçmiş tarihi nedeniyle. Kakao, NeXTStep işletim sistemi için uygulamalar oluşturmak için kullanılan çerçeveler olarak hayata başladı. Apple NeXT'yi 1996'da satın aldığında, NeXTStep'in çoğu mevcut sınıf isimleri de dahil olmak üzere OS X'e dahil edildi. Cocoa Touch, Cocoa'nın iOS eşdeğeri olarak tanıtıldı; bazı sınıflar hem Kakao hem de Kakao Dokunma'da mevcuttur, ancak her platforma özgü çok sayıda sınıf da vardır. NS ve UI (iOS'taki Kullanıcı Arabirimi öğeleri için) gibi iki harfli önekler Apple tarafından kullanılmak üzere ayrılmıştır.

Kaynak: Objective-C ile Programlama


23

Gönderen Cocoa_ (API) Vikipedi :

(vurgu eklendi)

Kakao dersleri kısaltma ile başlar "NS" (için ya ayakta OpenStep'in NeXT-Güneş yaratılması veya OpenStep'in çerçevesinde, orijinal tescilli dönem için NeXTSTEP'in NSString, NSArray vb:)

Foundation Kit veya daha yaygın olarak Foundation , ilk olarak OpenStep'te ortaya çıktı . Mac OS X'te Core Foundation temel alınmıştır. Foundation, dize ve değer işleme, kapsayıcılar ve yineleme, dağıtılmış bilgi işlem, çalıştırma döngüleri ve doğrudan grafik kullanıcı arabirimine bağlı olmayan diğer işlevler sağlayan genel bir nesne yönelimli kitaplıktır. Çerçevedeki tüm sınıflar ve sabitler için kullanılan "NS" öneki , Coco'nun NeXT ve Sun tarafından ortaklaşa geliştirilen OPENSTEP mirasından geliyor .


Wikipedia burada yanlış. Foundation Kit ilk olarak OpenStep'ten önce gelen Enterprise Objects Framework'te ortaya çıktı . Bu arada, Vakfın NeXT sürümünün bir CoreFoundation benzeri C API'sine dayandığı iddia edildi, ancak Mac OS X'e kadar genel arayüz olarak ortaya

@ user23743, doğru olduğunu düşünmüyorum. EOF, OPENSTEP işletim sisteminden önce gelir, ancak OpenStep API'sinden önce gelmez. Doğrudan bağlandığınız EOF belgeleri (referanslar OpenStep) [ cilinder.be/docs/next/NeXTStep/3.3/nd/Foundation/… ve her ikisi de 1994 yılında piyasaya sürüldü.
AriX

12

NeXT NextStep API'sini (NEXTSTEP işletim sisteminin aksine) tanımlarken, NXConstantString'deki gibi NX önekini kullandılar. Sun ile OpenStep spesifikasyonunu yazarken (OPENSTEP işletim sistemi ile karıştırılmamalıdır) NSObject'te olduğu gibi NS önekini kullandılar.


10

Temel olarak NS N ext S'den geliyor , Apple Next'i satın aldığında Mac OS X olan orijinal işletim sistemi TEP'den .

Başka bir şeyi açıklamak istiyorum ve bu yüzden tam olarak gerekli.

C ++ 'da ad alanları vardır ve neredeyse her şey girer std'ye

Bu yüzden std :: string'iniz var.

Ad alanları kullanılır, böylece bir hata yapmanız daha zordur ve sistem sınıfıyla çakışmadan kendi sınıf dizginizi yazabilirsiniz.

Objective-C, C'nin üst kümesidir, ancak ad alanlarını içermez ve aynı nedenden ötürü tüm sistem sınıflarına NS veya başka bir garip önek eklenir.

Bu şey, tüm DirectX sınıflarının D3D ile ön ekinin nasıl kullanıldığı ve tüm OpenGL sınıflarının gl ile ön ekinin nasıl yapıldığıyla aynıdır .

Bu , kendi sınıflarınızı adlandırmak için NS'yi kullanmamanız gerektiği ve Core Animation veya CG'de NS , CA gördüğünüzde çekirdek grafikleri de bu sistem çerçevesinde yapılan bir çağrı olduğunu anlıyoruz.

Swift bu kuralı değiştirir, çünkü Swift ad boşluğunu destekler ve String gibi çekirdek türlerini NS eşdeğerleriyle eşler.


6

Kim bilmeli Bill Bumgarner aka @bbum, 2005 yılında CocoaBuilder posta listesine gönderildi :

Sun, NS öneki devreye girdikten sonra resme biraz girdi. NeXTSTEP 3.0'dan NeXTSTEP 4.0'a (OpenStep olarak da bilinir) geçiş sırasında genel API'larda NS öneki ortaya çıktı. 4.0'dan önce, bir dizi sembol NX önekini kullandı, ancak sistem kitaplıkları tarafından sağlanan sınıfların çoğuna önek eklenmedi - List, Hashtable, View, vb.

Herkesin NX ön ekinin (NeXT için) 1993/1994 tarihine kadar kullanıldığını kabul ettiği ve Apple'ın belgelerinin şunları söyledi :

1994 yılının Eylül ayında yayınlanan resmi OpenStep API, API'yı Foundation ve Application Kit arasında ilk bölen ve “NS” önekini ilk kullanan kişi oldu.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.