Cocoa/Cocoa Touch中的许多类都有NS前缀。这是什么意思?


当前回答

它来自NeXTSTEP传统。

其他回答

来自Cocoa_(API)维基百科:

(重点)

Cocoa classes begin with the acronym "NS" (standing either for the NeXT-Sun creation of OpenStep, or for the original proprietary term for the OpenStep framework, NeXTSTEP): NSString, NSArray, etc. Foundation Kit, or more commonly simply Foundation, first appeared in OpenStep. On Mac OS X, it is based on Core Foundation. Foundation is a generic object-oriented library providing string and value manipulation, containers and iteration, distributed computing, run loops, and other functions that are not directly tied to the graphical user interface. The "NS" prefix, used for all classes and constants in the framework, comes from Cocoa's OPENSTEP heritage, which was jointly developed by NeXT and Sun.

它来自NeXTSTEP传统。

当NeXT定义NextStep API(与NextStep操作系统相反)时,他们使用了前缀NX,如NXConstantString。当他们使用Sun(不要与OpenStep操作系统混淆)编写OpenStep规范时,他们使用了NS前缀,就像在NSObject中一样。

它是NextStep (= NS)遗产。NeXT是乔布斯1985年离开苹果公司后成立的电脑公司,NextStep是它的操作系统(基于UNIX)以及Obj-C语言和运行时。NextStep连同它的库和工具,后来被重新命名为OpenStep(这也是NeXT和Sun一起开发的API上的名字),后来又变成了Cocoa。

这些不同的名字实际上很让人困惑(特别是因为有些名字只在字符是大写或小写时才不同..),尝试下面的解释:

TheMerger OpenstepConfusion

Bill Bumgarner又名@bbum,谁应该知道,他在2005年的CocoaBuilder邮件列表上写道:

Sun是在NS前缀开始发挥作用之后才进入的。NS前缀出现在从NeXTSTEP 3.0到NeXTSTEP 4.0(也称为OpenStep)的公共api中。4.0之前,a 少数符号使用NX前缀,但大多数类提供 系统库根本没有前缀——List, Hashtable, 看来,等等……

似乎每个人都同意,NX (NeXT)这个前缀在1993/1994年之前一直被使用,苹果的文档中写道:

1994年9月发布的官方OpenStep API是第一个将API分离为Foundation和Application Kit的API,并且第一个使用“NS”前缀的API。