คำนำหน้า NS หมายถึงอะไร


คำตอบ:


456

มันมาจากมรดกNeXTSTEP


7
... หรือบางทีมรดกทางจิตวิญญาณ / ดวงอาทิตย์ (ดวงอาทิตย์เป็นผู้มีส่วนร่วมในกลุ่ม OpenStep)
Barry Wark

27
ใช่แน่นอน มันเป็นโครงร่างที่สวยงามในคำตอบอื่น ๆ นั่นคือสาเหตุที่ฉันไม่ได้สนใจที่จะคัดลอกข้อมูลนั้นไปยังของฉัน ขออภัยหากมีใครบางคนทำให้ขุ่นเคือง - ฉันไม่คิดว่าคำตอบที่ยอมรับจะเปลี่ยนเป็นอย่างใดอย่างหนึ่ง (ถ้าเป็นไปได้ - ไม่เคยตรวจสอบเลย)
Olaf Kock

2
ฉันต้องการดูเพิ่มเติม แต่ลิงค์ไปยัง NeXTSTEP
Bagrat Kirakosian

784

รหัสต้นฉบับสำหรับกรอบ Cocoa มาจากมูลนิธิNeXTSTEPไลบรารีและ AppKit (ชื่อเหล่านั้นยังคงใช้โดยกรอบ Cocoa ของ Apple) และวิศวกร NextStep เลือกที่จะนำหน้าสัญลักษณ์ของพวกเขาด้วย NS

เนื่องจาก Objective-C เป็นส่วนเสริมของ C ดังนั้นจึงไม่มีเนมสเปซเหมือนใน C ++ สัญลักษณ์จะต้องนำหน้าด้วยคำนำหน้าที่ไม่ซ้ำกันเพื่อไม่ให้ชนกัน สิ่งนี้มีความสำคัญอย่างยิ่งสำหรับสัญลักษณ์ที่กำหนดในกรอบงาน

หากคุณกำลังเขียนแอปพลิเคชันเช่นว่ารหัสของคุณมีแนวโน้มที่จะใช้สัญลักษณ์ของคุณเท่านั้นคุณไม่ต้องกังวลเกี่ยวกับเรื่องนี้ แต่ถ้าคุณกำลังเขียนเฟรมเวิร์กหรือไลบรารีสำหรับการใช้งานของผู้อื่นคุณควรใส่สัญลักษณ์ของคุณด้วยสัญลักษณ์นำหน้าด้วย CocoaDev มีหน้าเว็บที่นักพัฒนาจำนวนมากในชุมชน Cocoa ได้ระบุคำนำหน้า "เลือก" ไว้ คุณอาจพบว่าการสนทนานี้เป็นประโยชน์


150

N eXT S TEP หรือN eXTSTEP / Sขึ้นอยู่กับว่าคุณต้องการถามใคร

ซันมีการลงทุนขนาดใหญ่พอสมควรใน OpenStep สักพัก ก่อนที่ดวงอาทิตย์เข้ามาในภาพสิ่งที่มากที่สุดในรากฐานแม้ว่ามันจะไม่ได้เป็นที่รู้จักกันเป็นรากฐานกลับมาแล้วถูกนำNXสำหรับN e X T และบางครั้งก่อนที่ดวงอาทิตย์เข้ามาทุกภาพจะเปลี่ยนเป็นNS Sส่วนใหญ่มีแนวโน้มไม่ได้ยืนสำหรับอาทิตย์แล้ว แต่หลังจากที่ดวงอาทิตย์ก้าวเข้าไปในมติทั่วไปคือการที่มันยืนดวงอาทิตย์เพื่อเป็นเกียรติแก่การมีส่วนร่วมของพวกเขา

ฉันมีการอ้างอิงสำหรับสิ่งนี้ แต่ฉันหามันไม่พบในตอนนี้ ฉันจะอัปเดตโพสต์หาก / เมื่อฉันพบมันอีกครั้ง


4
ฉันเคยได้ยินเรื่องเดียวกันจากแหล่งที่เชื่อถือได้มาก ฉันค่อนข้างมั่นใจว่านี่เป็นคำตอบที่ถูกต้องที่สุดที่นี่
ไทเลอร์

2
ฉันพบข้อมูลอ้างอิง: cocoabuilder.com/archive/cocoa/136618-what-does-ns-means.html
Simon Woodside

@SimonWoodside Link ตายแล้ว
Dinsdale

แหล่งอ้างอิงทางอินเทอร์เน็ตของเอกสารอ้างอิง: web.archive.org/web/20151008121657/http://www.cocoabuilder.com/…
Simon Woodside

53

มันเป็นมรดกของ NextStep (= NS) NeXT เป็น บริษัท คอมพิวเตอร์ที่ Steve Jobs ก่อตั้งขึ้นหลังจากเขาออกจาก Apple ในปี 1985 และ NextStep เป็นระบบปฏิบัติการ (อิง UNIX) พร้อมด้วยภาษา Obj-C และรันไทม์ เมื่อรวมกับไลบรารีและเครื่องมือต่างๆแล้ว NextStep ก็ถูกเปลี่ยนชื่อเป็น OpenStep ในภายหลัง (ซึ่งเป็นชื่อบน API ที่ NeXT พัฒนาร่วมกับ Sun) ซึ่งต่อมากลายเป็นโกโก้

ชื่อที่แตกต่างกันเหล่านี้ค่อนข้างสับสน (โดยเฉพาะอย่างยิ่งเนื่องจากชื่อบางชื่อแตกต่างกันเฉพาะในกรณีที่อักขระเป็นตัวพิมพ์ใหญ่หรือตัวเล็ก .. ) ให้ลองคำอธิบายนี้:

TheMerger OpenstepConfusion


4
ฉันสาบานได้เลยว่า Apple ยิงเขาด้วยเหตุผลหลายประการ
คดีฟ้องร้องกองทุนโมนิก้า

43

จากเอกสารนักพัฒนาของ Apple:

บันทึกทางประวัติศาสตร์: หากคุณสงสัยว่าทำไมห้องเรียนจำนวนมากที่คุณพบมีคำนำหน้า NS นั่นเป็นเพราะประวัติศาสตร์ในอดีตของ Cocoa และ Cocoa Touch Cocoa เริ่มต้นชีวิตด้วยเฟรมเวิร์กที่รวบรวมมาเพื่อสร้างแอพสำหรับระบบปฏิบัติการ NeXTStep เมื่อ Apple ซื้อ NeXT กลับมาในปี 1996 NeXTStep ส่วนใหญ่ได้รวมอยู่ใน OS X รวมถึงชื่อคลาสที่มีอยู่ Cocoa Touch ได้รับการแนะนำในฐานะ iOS ที่เทียบเท่ากับ Cocoa บางคลาสมีให้บริการทั้งใน Cocoa และ Cocoa Touch แม้ว่าจะมีคลาสจำนวนมากที่ไม่ซ้ำกันในแต่ละแพลตฟอร์ม คำนำหน้าตัวอักษรสองตัวเช่น NS และ UI (สำหรับองค์ประกอบส่วนต่อประสานผู้ใช้บน iOS) สงวนไว้สำหรับการใช้งานโดย Apple

ที่มา: การเขียนโปรแกรมด้วย Objective-C


23

จากCocoa_ (API) Wikipedia :

(เน้นเพิ่ม)

คลาส Cocoa เริ่มต้นด้วยคำย่อ"NS" (ยืนสำหรับการสร้าง NeXT-Sun ของ OpenStepหรือสำหรับคำที่เป็นกรรมสิทธิ์ดั้งเดิมสำหรับกรอบ OpenStep, NeXTSTEP ): NSString, NSArray เป็นต้น

มูลนิธิ Kitหรือมากกว่าปกติเพียงมูลนิธิปรากฏตัวครั้งแรกใน OpenStep สำหรับ Mac OS X นั้นใช้พื้นฐานของ Core Foundation Foundation เป็นไลบรารีเชิงวัตถุทั่วไปที่ให้การจัดการสตริงและค่าคอนเทนเนอร์และการวนซ้ำการคำนวณแบบกระจายรันลูปและฟังก์ชั่นอื่น ๆ ที่ไม่ได้เชื่อมโยงโดยตรงกับส่วนติดต่อผู้ใช้แบบกราฟิก "การ NS" คำนำหน้าใช้สำหรับทุกชั้นและค่าคงที่ในกรอบที่มาจากมรดก OPENSTEP โกโก้ซึ่งได้รับการพัฒนาร่วมกันโดยNeXTและดวงอาทิตย์


Wikipedia ผิดที่นี่ Foundation Kit ปรากฏตัวครั้งแรกใน Enterprise Objects Frameworkซึ่งมีมาก่อน OpenStep อนึ่งรุ่น NeXT ของ Foundation นั้นใช้ CoreFoundation-like C API เหมือนกัน แต่นั่นก็ไม่ได้ถูกเปิดเผยในฐานะส่วนต่อประสานสาธารณะจนกว่า Mac OS X จะใช้งานได้

@ user23743 ฉันไม่คิดว่าคุณถูกต้อง EOF ถือกำเนิดระบบปฏิบัติการ OPENSTEP แต่ไม่ใช่ OpenStep API เอกสารประกอบ EOF ที่คุณเชื่อมโยงโดยตรง (อ้างอิง OpenStep) [ cilinder.be/docs/next/NeXTStep/3.3/nd/Foundation/ …และพวกเขาทั้งคู่ได้เปิดตัวในปี 1994
AriX

12

เมื่อ NeXT กำหนด NextStep API (ตรงข้ามกับระบบปฏิบัติการ NEXTSTEP) พวกเขาใช้คำนำหน้า NX เช่นเดียวกับใน NXConstantString เมื่อพวกเขากำลังเขียนข้อมูลจำเพาะ OpenStep กับ Sun (เพื่อไม่ให้สับสนกับระบบปฏิบัติการ OPENSTEP) พวกเขาใช้คำนำหน้า NS เช่นเดียวกับใน NSObject


10

โดยทั่วไปNSมาจากN ext S TEP ระบบปฏิบัติการดั้งเดิมที่กลายเป็น Mac OS X เมื่อ Apple ซื้อกิจการ Next

ฉันต้องการอธิบายอย่างอื่นและนี่คือเหตุผลว่าทำไมมันถึงต้องการ

ใน C ++ มีเนมสเปซและเกือบทุกอย่างจะเป็นstd

นี่คือเหตุผลที่คุณมี std :: string

ใช้เนมสเปซดังนั้นจึงเป็นเรื่องยากสำหรับคุณที่จะทำผิดพลาดและคุณสามารถเขียนคลาสสตริงของคุณเองโดยไม่ขัดแย้งกับระบบ

Objective-C คือ superset of C, แต่มันไม่รวม namespaces และด้วยเหตุผลเดียวกันเหนือคลาสระบบทั้งหมดจะถูกนำหน้าด้วย NS หรือคำนำหน้าแปลก ๆ

สิ่งนี้เป็นเช่นเดียวของวิธีการทุกชั้นเรียน DirectX จะมีคำนำหน้าD3Dและวิธีการทุกชั้นเรียน OpenGL จะมีคำนำหน้าGL

ซึ่งหมายความว่าคุณไม่ควรใช้NSเพื่อตั้งชื่อคลาสของคุณเองและเมื่อคุณเห็นNS , CAใน Core Animation หรือCGใน Core Graphics คุณเข้าใจว่านี่เป็นการเรียกไปยังเฟรมเวิร์กระบบ

Swift เปลี่ยนการประชุมนี้เนื่องจาก Swift รองรับการกำหนดเนมสเปซและแมปประเภทหลักของมันเช่น String กับ NS ที่เทียบเท่า


6

Bill Bumgarner aka @bbum ใครควรรู้โพสต์ในรายชื่อผู้รับจดหมาย CocoaBuilder ในปี 2005 :

Sun เข้ามาในรูปเล็กน้อยหลังจากคำนำหน้า NS เข้ามาเล่น คำนำหน้า NS เกิดขึ้นใน API สาธารณะในระหว่างการย้ายจาก NeXTSTEP 3.0 ไปยัง NeXTSTEP 4.0 (หรือที่รู้จักในชื่อ OpenStep) ก่อนหน้า 4.0 สัญลักษณ์จำนวนหนึ่งใช้คำนำหน้า NX แต่คลาสส่วนใหญ่ที่มีในไลบรารีระบบไม่ได้นำหน้า - รายการ, Hashtable, View, etc ...

ดูเหมือนว่าทุกคนยอมรับว่ามีการใช้คำนำหน้า NX (สำหรับ NeXT) จนถึงปี 1993/1994 และเอกสารของ Apple บอกว่า :

OpenStep API อย่างเป็นทางการที่เผยแพร่ในเดือนกันยายนปี 1994 เป็นคนแรกที่แยก API ระหว่าง Foundation และ Application Kit และเป็นคนแรกที่ใช้คำนำหน้า“ NS”

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.