NSString

作者: 方方1307007 | 来源:发表于2016-02-28 11:39 被阅读0次

    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的增长

    相关文章

      网友评论

          本文标题:NSString

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