Banyak kelas di Cocoa / Cocoa Touch memiliki awalan NS. Apa artinya?
ios
objective-c
cocoa
cocoa-touch
Martin08
sumber
sumber
Kode asli untuk kerangka kerja Kakao berasal dari librari NeXTSTEP Foundation dan AppKit (nama-nama itu masih digunakan oleh kerangka kerja Kakao Apple), dan para insinyur NextStep memilih untuk mengawali simbol mereka dengan NS.
Karena Objective-C adalah ekstensi dari C dan karenanya tidak memiliki ruang nama seperti di C ++, simbol harus diawali dengan awalan unik sehingga tidak bertabrakan. Ini sangat penting untuk simbol yang didefinisikan dalam suatu kerangka kerja.
Jika Anda menulis aplikasi, sehingga kode Anda hanya akan menggunakan simbol Anda, Anda tidak perlu khawatir tentang hal ini. Tetapi jika Anda menulis kerangka kerja atau pustaka untuk digunakan orang lain, Anda juga harus mengawali simbol Anda dengan awalan yang unik. CocoaDev memiliki halaman di mana banyak pengembang di komunitas Cocoa telah mendaftarkan awalan "terpilih" mereka. Anda juga dapat menemukan diskusi SO ini bermanfaat.
sumber
N EXT S TEP atau N eXTSTEP / S un tergantung pada siapa yang Anda tanyakan.
Sun memiliki investasi yang cukup besar di OpenStep untuk sementara waktu. Sebelum Sun memasuki gambar kebanyakan hal di yayasan, meskipun itu tidak dikenal sebagai yayasan saat itu, itu diawali NX , untuk N e X T, dan kadang-kadang sebelum Sun memasuki gambar semuanya berganti nama menjadi NS . The S kemungkinan besar tidak berdiri untuk Sun kemudian tapi setelah Sun melangkah konsensus umum adalah bahwa itu berdiri untuk Sun untuk menghormati keterlibatan mereka.
Saya sebenarnya punya referensi untuk ini tetapi saya tidak dapat menemukannya sekarang. Saya akan memperbarui posting jika / ketika saya menemukannya lagi.
sumber
Ini adalah warisan NextStep (= NS). NeXT adalah perusahaan komputer yang dibentuk Steve Jobs setelah ia keluar dari Apple pada tahun 1985, dan NextStep adalah sistem operasinya (berbasis UNIX) bersama dengan bahasa Obj-C dan runtime. Bersama-sama dengan perpustakaan dan alat-alatnya, NextStep kemudian berganti nama menjadi OpenStep (yang juga merupakan nama pada API yang dikembangkan NeXT bersama Sun), yang kemudian menjadi Cocoa.
Nama-nama yang berbeda ini sebenarnya cukup membingungkan (terutama karena beberapa nama hanya berbeda di mana karakter huruf besar atau kecil ..), coba ini untuk penjelasan:
TheMerger OpenstepConfusion
sumber
Dari dokumen pengembang Apple:
Sumber: Pemrograman dengan Objective-C
sumber
Dari Cocoa_ (API) Wikipedia :
(penekanan ditambahkan)
sumber
Ketika NeXT mendefinisikan NextStep API (sebagai lawan dari sistem operasi NEXTSTEP), mereka menggunakan awalan NX, seperti pada NXConstantString. Ketika mereka menulis spesifikasi OpenStep dengan Sun (jangan bingung dengan sistem operasi OPENSTEP) mereka menggunakan awalan NS, seperti pada NSObject.
sumber
Pada dasarnya NS berasal dari N ext S TEP, sistem operasi asli yang menjadi Mac OS X ketika Apple mengakuisisi Next.
Saya ingin menjelaskan sesuatu yang lain dan inilah mengapa dibutuhkan.
Di C ++ ada ruang nama dan hampir semuanya berjalan di std
Inilah sebabnya mengapa Anda memiliki std :: string.
Namespaces digunakan sehingga lebih sulit bagi Anda untuk membuat kesalahan dan Anda dapat menulis string kelas Anda sendiri tanpa bertentangan dengan sistem satu.
Objective-C adalah superset dari C, tetapi tidak termasuk ruang nama dan untuk alasan yang sama di atas semua kelas sistem diawali dengan NS atau awalan aneh lainnya.
Hal ini sama dengan bagaimana semua kelas DirectX diawali dengan D3D dan bagaimana semua kelas OpenGL diawali dengan gl .
Ini berarti bahwa Anda tidak boleh menggunakan NS untuk memberi nama kelas Anda sendiri dan ketika Anda melihat NS , CA di Core Animation atau CG di Core Graphics Anda mengerti bahwa ini adalah panggilan ke kerangka kerja sistem.
Swift mengubah konvensi ini, karena Swift mendukung namespacing dan memetakan tipe intinya seperti String ke NS.
sumber
Bill Bumgarner alias @bbum, yang seharusnya tahu , diposting di milis CocoaBuilder pada 2005 :
Tampaknya semua orang setuju bahwa awalan NX (untuk NeXT) digunakan hingga 1993/1994, dan dokumen Apple mengatakan :
sumber