NSString 引用類型,用指針形式使用
初始化:1. @“”字面量初始化 2. 初始化器方法 3. 工廠方法
恒定性:不能更改字符串本身
共享機(jī)制:字符串內(nèi)容相同時(shí)兩個(gè)指針會(huì)指向同一個(gè)對(duì)象(為了減少字符串重復(fù)帶來的內(nèi)存浪費(fèi))
偽更改字符串:str1 = [str1 stringByAppendingString: @"Yes !"]; 此時(shí)并未真正更改字符串,而是讓指針str1指向了一個(gè)新的字符串(新的內(nèi)存地址)
判斷相等:
1. 值相等:if( [str1 isEqualToString: str2] )
2. 指針相等:str1==str2
NSMutableString:無恒定性,無共享性,是NSString的子類
初始化:NSMutableString *mustr1 = [NSMutableStringWithString:@"Hello World!"];
直接更改:[mustr1 appendString: @"Very Good!" ];
漏洞:如果定義時(shí)讓NSString的指針指向一個(gè)NSMutableString的指針?biāo)傅淖址?,那么更改NSMutableString的字符串時(shí)會(huì)同時(shí)改變NSString的字符串
NSMutableString*mustr1 = [NSMutableStringstringWithString:@"Hello,World!"];
NSString*str5=mustr1;
[mustr1appendString:@" Very Good!"];
NSString定義時(shí)會(huì)預(yù)先分配一段緩存容量(大于實(shí)際所需),也可以手動(dòng)分配:
NSMutableString*mustr3 =[NSMutableString stringWithCapacity:100];
然后就可以更改NSMutableString
方法:
1. appendString(附加)
[mustr3 appendString:@"Hello Objective"];
2. insertString(插入)
[mustr3 insertString:@"-C" atIndex:mustr3.length];
3. setString(替換)
[mustr3 setString:@"Hi Objective"];
當(dāng)實(shí)際需求大于緩存容量時(shí),緩存容量會(huì)自動(dòng)變?yōu)樵瓉淼?倍,此過程較為復(fù)雜。因此最好預(yù)先估計(jì)并分配緩存容量,盡量不要讓緩存容量自動(dòng)增長(zhǎng)。
字符串基本操作
1. sizeof(str1):占內(nèi)存字節(jié)數(shù)
2. str1.length:字符數(shù)量
3. 遍歷:
for(int i =0; i < [str1 length]; i++)
更多字符串操作詳見源代碼