先看OC中的NSString可能分配的内存区域https://www.jianshu.com/p/86f5c5557c35
再看Swift中的String可能分配的内存区域
常量区
放在了哪个地方?
0.string.jpg结论:
- 长度<=15: 字符串变量的内存中(字符串的内容直接放在字符串变量的内存中)
- 长度>15: 常量区(不能改,编译器就完成的)
- append && 长度>15: 开辟堆内存空间
尽量使用String,如果要配合NSRange使用,可以将String类型转为NSString类型,两者是可以无缝转换的。
网友评论