美文网首页
OC和Swift中String的区别

OC和Swift中String的区别

作者: 哈布福禄克 | 来源:发表于2019-11-14 12:09 被阅读0次

    一、相同点:

    在Swift中,String保留了大部分的NSStringAPI
    如:

    1、判断字符串内容是否以某字符串开始
    hasPrefix
    
    2、判断字符串内容谁否以某字符串结尾
    hasSuffix
    
    3、将字符串中的字母转成小写字母
    lowercased
    
    4、将字符串中的字母转成大写字母
    capitalized
    
    5、将字符串分割成数组的
    components(separatedBy:)
    

    除了以上这些外,还有一些常规的操作,在Swift中使用String和NSString都是可以的。

    二、不同点

    • Swift中String是值类型,Objective-C中NSString是引用类型(值类型在传值的时候通过拷贝出不同的实例来传值,改变一个实例的属性等并不会在其他实例上体现;引用类型在传值的时候通过引用,相当于拷贝了指针,不同变量所指向的同一个实例改变里面的属性个等会影响到所有);
    • StringNSString的长度比较方法是不一样的,在String中的是使用count来计算长度的,在NSString中是使用length来计算长度的;

    三、使用下标截取字符串

    1、结论:
    • Objective-C:可以使用下标访问字符串中的字符。
    • Swift:不可以使用下标访问字符串中的字符。
    2、原因:
    • Objective-C:字符串采用的ASCII,不同的字符是用相同数量的内存来存储,因此为了可以确定哪个Character位于特定位置。
    • Swift:字符串中采用的是更广泛Unicode,不同的字符可能需要不同数量的内存来存储,因此为了确定哪个Character位于特定位置,您必须从每个Unicode标量的开始或结尾处遍历String。因此,Swift字符串不能用整数值索引。

    相关文章

      网友评论

          本文标题:OC和Swift中String的区别

          本文链接:https://www.haomeiwen.com/subject/qfwhictx.html