-2

来自 Visual C、C#、Java、ActionScript 等高级语言,其中包从一开始就很常见和基本,并且围绕名称冲突存在许多可伸缩性问题,我一直认为 Objective-c 语言不是最新的.

现在,既然我们有可用的命名空间并且在模块之间是隐式的,为什么类仍然带有前缀,例如我正在浏览这个 WWDC 16 视频Enhancing VoIP Apps with CallKit,并且类仍然以 CX 为前缀,这应该成为过去现在。

Swift 3.0 确实强调删除重复的元素,他们修改和缩短了许多函数名称,有没有办法摆脱这个 NS 前缀,或者他们会做些什么,或者仍然像他们对 CallKit 所做的那样为他们的类库添加前缀. 这仍然是一个重复。

在此处输入图像描述

4

1 回答 1

1

现在既然我们有可用的命名空间并且在模块之间是隐式的,为什么类仍然是前缀

因为 API 是用没有命名空间的 Objective-C 编写的,并且必须保持可用。

NS 现在(Swift 3)从 Foundation 类中消失了,这当然是件好事。这是通过在 Foundation API 前面放置一个“覆盖”来实现的。将来,这可以通过其他框架来完成。(然而,关于未来的问题不适合 Stack Overflow,而且你和其他人一样能够阅读swift-evolution 网站。)

于 2016-07-09T04:51:44.593 回答