String是swift语言中的字符类型
NSString是Foundation框架下的一个核心处理字符串的类 OC
随着Swift的快速更新 String 和 NSString 的差别越来越小了
首先两者可以通过在值后面加as 进行桥接转换的
let str : String = "hello, world" as String
let str1 : NSString = str as NSString
两者不同的是
String:在操作String的子字符集时候只能使用String.Index
let startIndex=str.startIndex
let Index=str.index(startIndex, offsetBy:5)
str[startIndex..<endIndex]
此时str 为"hello"
NSString:在操作NSString的子字符集的时候使用 Int整形就可以操作了 比较方便
str1.substring(from:5)
str1.substring(to:5)
编码方式的不同导致了操作的不同,其实用整形来操作 对于中文字符或者某些符号是不好的
注意这里:苹果官方文档上说到"CFString(NSString的底层) 代表了一个 Unicode 字符组成的数组...[Unicode] 标准定义了一个通用、统一的编码方案,其中每个字符 16 位。" 这里误导性很强,在OBJC中国期刊上可以看到 原作者已经出来声明。大家都知道现在Unicode是21位编码的,而这里又说NSString每个字符代表16位,这里说的Unicode是NSString 还在开发的时候(它最初是作为 Foundation Kit 的一部分在 1994 年发布的)