美文网首页
NSString和NSMutableString的区别(NSAr

NSString和NSMutableString的区别(NSAr

作者: 萝卜丝巾 | 来源:发表于2019-04-13 21:36 被阅读0次

    其实NSString和NSMutableString的区别的主要区别只有一点

    官方为了性能考虑!!!

    NSString和NSMutableString 都是字符串拼接的API

    NSString:stringByAppendingString
    stringByAppendingString:返回String,由于本身的不可变性, 所以每次拼接之后都是在内存中开辟一个全新的空间来存储string,
    而上次的string还在内存中,导致无用的垃圾数据,浪费内存。


    image.png
    
        NSString * str1 = @"Hello World";    
        CFAbsoluteTime startTime =CFAbsoluteTimeGetCurrent();
        for (int i=0; i<1000; i++) {
            [str1 stringByAppendingString:@"1231"];
        }
        CFAbsoluteTime linkTime = (CFAbsoluteTimeGetCurrent() - startTime);
        NSLog(@"Linked111 in %f ms", linkTime *1000.0);
    

    NSMutableString:appendString
    appendString:没有返回值,本身可变,所以每次都是在原有内存中增加!!


    image.png
        NSMutableString *str4 = [NSMutableString stringWithString:@"22"];
        CFAbsoluteTime startTime2 =CFAbsoluteTimeGetCurrent();
        for (int i=0; i<1000; i++) {
            [str4 appendString:@"1231"];
        }
        CFAbsoluteTime linkTime2 = (CFAbsoluteTimeGetCurrent() - startTime2);
        NSLog(@"Linked22 in %f ms", linkTime2 *1000.0);
    

    最后再看下for循环1000次之后的结果


    100次循环结果

    可以看出NSMutableString比NSString速度快了10倍!!!!!!

    相关文章

      网友评论

          本文标题:NSString和NSMutableString的区别(NSAr

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