美文网首页
NSString和NSMutableString

NSString和NSMutableString

作者: 黑夜中的星辰 | 来源:发表于2019-11-13 22:45 被阅读0次

    NSString不可变字符串

    NSString *str = @“123”;

    str = @“234”;

    每次给str赋值都会开辟新的内存,而指针str只是改变了它的指向。

    如果用到stringByAppendingString

    NSString *str = @“”;

    [str stringByAppendingString:@“123”];

    [str stringByAppendingString:@“234”];

    每执行一次这个方法都会重新开辟内存,重新开辟内存是很消耗资源的,所以NSString太多的stringByAppendingString调用,对性能会有很大的影响

    解决方法:

    NSMutableString是可变字符串

    一次性开辟一定大小的内存用来存放字符串,如果当前字符串没有超出内存,就可以继续往里面填,如果超出,就会重新开辟一块更大的内存,把原来的字符串copy过来,以前的内存回收

    当需要频繁变动字符串的时候,最好用NSMutableSting

    如果不确定字符串是否变动最好用copy修饰,因为它会开辟新的内存把字符串保存进去,这样不管被赋予的字符串吃否可变,取到的都是最初赋予的那个值。

    相关文章

      网友评论

          本文标题:NSString和NSMutableString

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