|
0
|
| Ray Lu · 技术社区 · 16 年前 |
|
1
428
它来自 NeXTSTEP 传统。 |
|
|
2
768
Cocoa框架的原始代码来自 NeXTSTEP 图书馆基金会和AppKIT(这些名字仍然被苹果的COCOA框架使用),而NeXPeST工程师选择用NS预置他们的符号。 因为Objto-C是C的扩展,因此没有像C++那样的命名空间,所以符号必须用唯一的前缀前缀,这样它们就不会发生冲突。这对于框架中定义的符号尤其重要。 如果您正在编写一个应用程序,这样您的代码就只可能使用您的符号,那么您不必为此担心。但是,如果您编写的是供他人使用的框架或库,则还应为符号添加唯一前缀。 CocoaDev has a page Cocoa社区中的许多开发人员已经列出了他们的“选择的”前缀。你也可以找到 this SO discussion 有帮助。 |
|
|
3
147
n 提取 S TEP或 n 下一步/ S 不取决于你问的是谁。 Sun在OpenStep上有一段时间投入了相当大的资金。在太阳进入图片之前,基金会中的大部分东西,即使它不被称为当时的基础,也是前缀。 氮氧化物 ,为了 n e X 在太阳进入图片之前,一切都被重新命名为 纳秒 . 这个 S 当时最有可能不代表太阳,但在太阳步入普遍共识之后,它代表太阳尊重他们的参与。 我确实有这个的参考资料,但现在找不到。如果我再次找到这篇文章,我会更新它。 |
|
|
4
52
这是下一步的遗产。其次是史蒂夫·乔布斯1985年离开苹果后成立的计算机公司,NextStep是一家基于Unix的操作系统,以及obj-c语言和运行时。与它的库和工具一起,nextstep后来被重新命名为openstep(它也是下一次与sun一起开发的API上的名称),而后又成为cocoa。 这些不同的名称实际上非常令人困惑(特别是由于某些名称只在字符大小写为大写或小写的情况下有所不同),请尝试以下说明: |
|
|
5
41
来自苹果开发者文档:
|
|
|
6
22
(增加了强调)
|
|
|
7
11
当next定义nextstep api(与nextstep操作系统相反)时,它们使用前缀nx,就像nxconstantstring中那样。当他们使用Sun编写OpenStep规范时(不要与OpenStep操作系统混淆),他们使用了ns前缀,就像在nsObject中那样。 |
|
|
8
6
比尔·布格纳 aka @bbum, who should know ,发布在 CocoaBuilder mailing list in 2005 :
似乎每个人都同意在1993/1994年之前使用前缀nx(用于next),并且 Apple's docs say :
|
|
|
9
6
基本上 纳秒 来自 n 提取 S TEP是苹果收购Next后,最初的Mac OS X操作系统。 我想解释一些其他的事情,这就是为什么需要它。 在C++中,有名字空间,几乎任何东西都在里面。 性病 这就是为什么你有STD::字符串。 使用了名称空间,因此很难出错,您可以编写自己的类字符串,而不会与系统字符串冲突。 objective-c是c的超集,但它不包含名称空间,而且出于同样的原因,首先所有系统类都用ns或其他奇怪的prefix进行了prefix。 这与所有DirectX类的预处理方式相同 D3D 以及如何使用 GL . 这意味着你不应该使用 纳秒 当你看到 纳秒 , 加利福尼亚州 核心动画或 CG 在核心图形中,您理解这是对系统框架的调用。 Swift改变了这一惯例,因为Swift支持名称间距,并将其核心类型(如字符串)映射到ns等价物。 |
|
10
1
|
|
|
KanKonga · 为什么这个swift代码没有显示在文本字段中? 3 年前 |
|
|
Community wiki · 目标的Xcode构建阶段的自动更新? 3 年前 |
|
|
Anton Timonin · 如何正确地将动态pod库更改为静态? 3 年前 |
|
|
Igor · 在OSX中,捆绑包的用户首选项在哪里? 3 年前 |
|
|
narner · 从Swift包创建Cocoapods框架 3 年前 |