NS- Prefix in Swift
Cocoa/Cocoa Touch中的许多类都有NS前缀。
这个要从乔帮主历史恩怨说起。当年Steve Jobs 和John Scullery与恩怨,乔帮主当年被人挤兑出苹果,自立门户的时候做了个公司叫做NextStep,里面这一整套开发包很是让一些科学家们喜欢,而现在Mac OS用的就是NextStep这一套函数库。
这些开发NextStep的人们比较自恋地把函数库里面所有的类都用NextStep的缩写打头命名,也就是NS****了。比较常见的比如:
NSLog
NSString
NSInteger
NSURL
NSImage
我们一个一个来看这个类都是干什么的。
首先NSString类:我们会在以后的工程代码中看到str as NSString OR NSString as str的操作。因为有些操作用OC字符串比较方便,有些则相反。所以我们很有必要熟练掌握这两种字符串的特点。
首先是共同点,String保留了大部分NSString的API,比如 .hasPrefix, .lowercaseString, .componentSeparateByString .substringWithRange等等。
然后是不同点:
- NSString是引用类型 而swift String是值类型。
- String的拼接要比NSString方便,String只需要加号即可 而NSString需要append或者stringWithFormat
- String可以用for each进行遍历
- 在统计字符串中字符的个数的时候 String用的是strA.characters.count的方式 而NSString直接.length即可 判断字符串是否为空 String只需要str.isEmpty进行判断即可,但是NSString就需要检查.length是否大于0
- String 可以直接用双等号检查字符串是否相等 但是NSString需要用strA.isEuqalToString())方法来判断
- NSString 可以做到同基本数据类型之间转化 比如说:
var strA: NSString = "12306"
var strB: NSString = "0.618"
var numOfInt = strA.integerValue;
var numOfDouble = strB.doubleValue;
这个功能是swift没有的 所以NSString在json解析或者字典转模型的时候会比较方便.
7. 最后一个 String有独有的字符串插入功能:
var strA:String = "My name is dx"
strA.insert("s", atIndex: strA.characters.indexOf("x")!);
print(strA) // My name is dsx
if we meet other usage in later study, we will added it.

浙公网安备 33010602011771号