ios常用的字串NSString理解

2021-09-12 04:40:28 字數 899 閱讀 9092

最近在做程式的時候,突然發現對於nsstring的理解還是存在問題的。因此補充一片blog,希望對剛剛進入oc開發並搞不清楚記憶體洩露問題的人一點指引。

賦值:nsstring * str = @"123"; // 這段**的含義其實就是附乙個常量給str,該部分由系統自動管理,不需要release釋放,是會autorelease的。

nsstring * str = [[nstring alloc] initwithstring :@"111"]; // 這種寫法本身存在問題,因為這個**的含義是說給str附乙個常量,因此會被編譯器優化,因此也是不需要release的,儘管有alloc出現。

nsstring * str = [[nsstring alloc] initwithformat:@"123"] ;// 必須要進行release才可以,因為這樣就會導致記憶體洩露。

nsstring * str = [[nsstring stringwithformat:@"111"];// 則個不需要release,也不會產生記憶體洩露,因為該部分呼叫的是系統的類方法,也就是會autorelease。這種方法其實也被稱之為臨時的變數使用方法。

補充一點內容:

1、initwithformat是例項方法

只能通過 nsstring* str = [[nsstring alloc] initwithformat:@"%@",@"hello world"] 呼叫,但是必須手動release來釋放記憶體資源

2、stringwithformat是類方法

可以直接用 nsstring* str = [nsstring stringwithformat:@"%@",@"hello world"] 呼叫,記憶體管理上是autorelease的,不用手動顯式release

經常在uilable的填寫中,使用到字串,因此也就非常容易造成記憶體洩露。

iOS字串常用操作集合

一。ios 字串擷取 1.定義乙個字串a,擷取a 的某乙個部分,複製給b,b必須是int型 nsstring a 1.2.30 intb a substringwithrange nsmakerange 4,2 intvalue nslog a n a nslog b d b output 2011...

iOS字串分割常用方法

1.字串的替換 nsstring str 12334dllggg33dlrt str str stringbyreplacingoccurrencesofstring 33 withstring hh nslog str 輸出結果 12hh4dlggghhdlrt 2.通過range分割字串 nss...

ios 常用字串的操作

1.使用標準的c字串來建立oc字串 char cstr this is a stirng nsstring ocstr nsstring stringwithutf8string cstr nslog oc stirng ocstr 2.比較字串是否相等 nsstring str1 this is ...