1.当使用字符串常量生成NSString对象,例如字面量、+ stringWithString:、- initWithString:方法时,生成的NSString对象为__NSCFConstantString类型,且计数为整数最大值,并一直存在于内存中。
2.当使用格式化字符且字符中包含非ASCII字符生成NSString对象,例如+ stringWithFormat:、- initWithFormat:时。生成的NSString为__NSCFString类型,且遵循引用计数规则。
3、当使用格式化字符且只包含ASCII字符生成NSString对象时:
1.字符数在0-7之间,生成NSTaggedPointerString对象并计数为整数最大值且一直存在内存中。
2.字符数在8-9时,字符全部在6位编码表中时,生成NSTaggedPointerString对象并计数为整数最大值且一直存在内存中。
3.字符数在8-9时,字符存在不在6位编码表中时,生成的NSString为__NSCFString类型,且遵循引用计数规则。
4.字符数在10-11时,字符全部在5位编码表中时,生成NSTaggedPointerString对象并计数为整数最大值且一直存在内存中。
5.字符数在10-11时,字符存在不在5位编码表中时,生成的NSString为__NSCFString类型,且遵循引用计数规则。
6.字符数大于11时,生成的NSString为__NSCFString类型,且遵循引用计数规则。
---------------------
原文:https://blog.csdn.net/TuGeLe/article/details/81457559
版权声明:本文为博主原创文章,转载请附上博文链接!