String与NSString对比

作者: 萤火驻守心间 | 来源:发表于2022-05-17 17:48 被阅读0次

    区别:String是结构体,NSString是类

    分析:
    1、结构体struct是值类型,String是结构体,所以也是值类型。值类型被赋予给一个变量、常量或者被传递给一个函数的时候,其值会被拷贝。这意味着它们的实例,以及实例中所包含的值类型属性,在代码中传递的时候都会被复制。
    2、类class是引用类型,NSString是类,所以也是引用类型。与值类型不同,引用类型在被赋予到一个变量、常量或者被传递到一个函数时,其值不会被拷贝。因此,引用的是已存在的实例本身。

    总结:
    1、NSString (class):引用类型,使用isa指针指向,分配在堆中
    2、String (struct):值类型,赋值传递的值,分配在栈中
    3、NSString (class)允许被继承,String (struct)不允许被继承
    4、String 与 NSString 有各自对应的API,需要用到自身没有的API时可以考虑相互转换

    相关文章

      网友评论

        本文标题:String与NSString对比

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