美文网首页
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可能分配在内存的地方

    常量区 这两种方式创建的字符串都是字符串常量,在常量区。 指针里 这样创建的字符串使用了Tagged Pointe...

  • NSString的内存分配

    先看一段测试代码 打印一下内存地址和所属类 __NSCFconstantString是常量字符串,那么它肯定是储存...

  • iOS-copy strong 可变 不可变 深浅拷贝

    NSString内存分配情况 可变 不可变: NSString 不可变是说它指向的不可变,重新赋值NSString...

  • swift中的String

    先看OC中的NSString可能分配的内存区域https://www.jianshu.com/p/86f5c555...

  • Objective-C中的alloc和init问题

    从开始学的NSString *name=[[NSString alloc] init]起,仅知道这句话是分配内存空...

  • iOS NSString的内存分配

    面试的时候有时候会随便问一句,判断两个NSString的字面量是否相同,为什么要用isEqualToString来...

  • 小谈NSString的内存分配

    面试的时候有时候会随便问一句,判断两个NSString的字面量是否相同,为什么要用isEqualToString来...

  • c 内存分配最佳实践

    内存分配失败 内存分配可能失败。常用解决办法是,在使用内存之前检查指针是否为NULL。 内存分配成功,但是尚未初始...

  • iOS开发-内存区块

    内存区块 5块 1.栈区 临时变量没有分配空间 像[NSString StringWithFormate:@""]...

  • C++基础知识回顾

    内存的管理 内存分配时候的步骤: 把指针指向分配内存的地方 用if(p==null)来判断分配有无分配成功 在用完...

网友评论

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

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