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等等。
然后是不同点:

  1. NSString是引用类型 而swift String是值类型。
  2. String的拼接要比NSString方便,String只需要加号即可 而NSString需要append或者stringWithFormat
  3. String可以用for each进行遍历
  4. 在统计字符串中字符的个数的时候 String用的是strA.characters.count的方式 而NSString直接.length即可 判断字符串是否为空 String只需要str.isEmpty进行判断即可,但是NSString就需要检查.length是否大于0
  5. String 可以直接用双等号检查字符串是否相等 但是NSString需要用strA.isEuqalToString())方法来判断
  6. 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.

posted @ 2020-06-27 22:59  EvanMeetTheWorld  阅读(34)  评论(0)    收藏  举报