美文网首页
NSString可能分配在内存的地方

NSString可能分配在内存的地方

作者: 梁森的简书 | 来源:发表于2021-01-12 23:13 被阅读0次

    常量区

    NSString * str = @"1";
    NSString * str1 = [NSString stringWithString:@"1"];
    

    这两种方式创建的字符串都是字符串常量,在常量区。

    指针里

    NSString *str = [NSString stringWithFormat:@"1"];
    NSString *str1 = [[NSString alloc] initWithFormat:@"1"];
    

    这样创建的字符串使用了Tagged Pointer,字符串在指针里,节省了堆空间。

    堆上

    NSString *str = [NSString stringWithFormat:@"这是很长的一串字符串,无法使用Tagged Pointer"];
    

    这样的字符串就是普通的OC对象,放在了堆空间。

    相关文章

      网友评论

          本文标题:NSString可能分配在内存的地方

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