NSString

2016-02-28  本文已影响0人  方方1307007

NSString是一个Unicode编码,16位字符的字符序列

NSString被定义为类,是一个引用类型,拷贝时就是拷贝指针

使用字符串的第一步,是初始化

三种初始化方式:

字面常量

NSString *str1=@"Hello World!";

内存分配,再搭配初始化器,编码方式

NSString *str2=[[NSString alloc]initWithCString:"Hello World!" encoding:NSUTF8StringEncoding];

工厂方法,是一个类方法,类方法内部返回一个新的对象

NSString *str3=[NSString stringWithCString:"Hello World!" encoding:NSUTF8StringEncoding];

NSString具有恒定性,所有操作无法更改字符串本身,如有更改,都是返回新值的形式

使用字面常量初始化方式,NSString具有共享机制

NSMutableString具有可变性,NSString具有恒定性

NSMutableString不具有共享机制,NSString具有共享机制

NSMutableString不是在原有内存上直接增长,而是重新分配一个更大或更小的缓存容量存放字符

字符串初始化后,会分配一个缓存容量capacity,其长度一般大于实际的字符串数量,当然也可以自己给它一个缓存容量

当字符串增长时,如果实际需求大于capacity,其capacity会以两倍的方式指数增长,代价是:分配新的堆内存2*capacity,将原来堆内存的内容拷贝到新内存,再释放原来堆内存

最佳实践:估计好capacity,预先分配好一定容量,避免以后capacity的增长

上一篇下一篇

猜你喜欢

热点阅读