在学习 Swift 编程语言的时候可能不会遇到这个东西,但是随着学习的深入,在你阅读他人的代码的时候,很可能你就会遇到这种NS类型,这时候你肯定会好奇,类似 String 和 NSString 到底哪里不同?似乎它们是完全一样的呀!而且,通过 as 这个关键字,我们也可以轻松的让数据在它们两者之间转换。
要说清楚NS类型,我们还得从当年的 NeXTSTEP 操作系统说起了:
NeXT 为了写这个操作系统,发明了 Objective-C。直到现在,苹果的所有操作系统和应用软件都是用这个语言编写。而且,为了方便开发者,还有了Cocoa框架。
我们都知道,OC 并不是一门独立的语言,它来自于 C 语言,就像是 C 语言的一个超集。所以它没有类似C++的命名空间,要避免冲突,那么就需要独一无二的前缀用来区别了,再加上比如说C语言是没有 String 这种类型的,那么自然而然就有了 NSString 这一类的类型名称了。
至于为什么是 NS
这就不得而知了,总之一直使用这个前缀就成了历史遗留问题,你可以在这个页面看到各种已知前缀。
而如今Swift要兼容OC,那自然就会兼容这些类型,你可以使用 Swift 的 String 类型,同样也可以使用 OC 的 NSString 类型——有时候后者有一些前者不具备的方法供你使用(比如说将字符串转为数字。)
延伸阅读
本文由 落格博客 原创撰写:落格博客 » NSString 和 String 究竟 有什么区别 ?
转载请保留出处和原文链接:https://www.logcg.com/archives/1054.html
Comments