为什么在苹果最新的框架中仍然遵循 class 前缀

why class prefixes are still followed in apple's latest frameworks

来自 Visual C、C#、Java、ActionScript 等高级语言,在这些语言中,包从一开始就是一种常见且基本的东西,围绕名称冲突存在许多可扩展性问题,我一直认为 objective-c 因为语言不是最新的。

既然我们有可用的命名空间并且在模块之间是隐式的,为什么 classes 仍然有前缀,例如我正在观看这个 WWDC 16 视频 Enhancing VoIP Apps with CallKit,和 class es 仍然以 CX 为前缀,这应该已经成为过去式了。

Swift 3.0确实强调去除重复的元素,他们修改和缩短了很多函数名,有没有办法去掉这个NS前缀或者他们会做些什么还是继续前缀他们的 class 库就像他们对 CallKit 所做的一样。还是重复了。

Now since we have namespacing available and is implicit across modules, why classes are still prefixed

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

NS 现在 (Swift 3) 从基金会中消失了 类,这当然是一件大事。这是通过在 Foundation API 前面放置一个 "overlay" 来实现的。将来,这可以通过其他框架来完成。 (然而,关于未来的问题不适合 Stack Overflow,您和其他人一样能够阅读 swift-evolution site。)