以上為 NSString 的常數 (constant) 形式, @ 後緊跟成對的雙引號,成對雙引號間即為 NSString 字串物件的內容。
為了有別於 C 語言的字串,因此 NSString 字串物件的常數形式為 @"" ,多了 @ 符號。
我們便是以常數形式建立 NSString 字串物件
// 建立三個 NSString 字串物件 NSString *s1 = @"\n\n這是 Objective-C 的第一個程式...\n"; NSString *s2 = @"使用 Foundation.h 中的 NSLog() 來輸出...\n"; NSString *s3 = @"程式執行結束...\n\n";
* 表示指標 (pointer) , Objective-C 中凡是指向物件的變數 (variable) 都必須用指標。
一般來說,建立物件大都先用 alloc 分配物件需要的記憶體空間,然後才用 init 之類的初始化方法完成,上例也可以改成
// 建立三個 NSString 字串物件 NSString *s1 = [[NSString alloc] initWithString: @"\n\n這是 Objective-C 的第一個程式...\n"]; NSString *s2 = [[NSString alloc] initWithString: @"使用 Foundation.h 中的 NSLog() 來輸出...\n"]; NSString *s3 = [[NSString alloc] initWithString: @"程式執行結束...\n\n"];
我們用常數直接指派給變數,主要是寫的簡潔一點。
C 語言的字串實際上是字元陣列 (character array) ,可用字元陣列的方式操作; NSString 屬於物件,因此有許多方法可以運用,以下列出常見的方法
功能 | 名稱 | ||||
---|---|---|---|---|---|
初始化 |
| ||||
取得字串長度 | - length | ||||
取得字元 |
| ||||
結合字串 |
| ||||
分割字串 |
|
另外還有搜尋、替換、讀檔、存檔、改變大小寫等眾多功能的方法。
關於 NSString 的詳細定義與說明,請參考
String Programming Guide
與
NSString Class Reference
在 demo.m 中,我們就是利用 stringByAppendingString: 將字串合併
// 傳遞 stringByAppendingString 訊息給 s1 ,並以 s2 當參數 // 這是將 s2 接到 s1 的後頭,因此 s1 與 s2 會合併為一個字串 s1 = [s1 stringByAppendingString: s2]; // 以下為將 s1 與 s3 合併為一個字串 s1 = [s1 stringByAppendingString: s3];
先傳遞將 s2 接到 s1 後面的訊息,然後再傳遞 s3 接到 s1 後面的訊息,咦, NSString 不是不可變的嗎?也就是無法改變內容的物件。沒錯,可是 s1 是指向物件的指標而非物件本身,當以下
[s1 stringByAppendingString: s2];
完成後,會回傳一個新指標,然後我們將這個新指標重新指派給 s1 ,因為這是產生新的 NSString 字串物件,而非原本的 NSString 字串物件。
懂了嗎?接下來我們來詳細討論一下NSLog()吧!
中英文術語對照 | |
---|---|
字串 | string |
物件 | object |
不可變 | immutable |
常數 | constant |
指標 | pointer |
變數 | variable |
字元陣列 | character array |
您可以繼續參考
基礎篇
相關目錄
Objective-C 入門指南
Objective-C 教材
首頁
參考資料
Learning Objective-C: A Primer
The Objective-C Programming Language
Cocoa Fundamentals Guide
Coding Guidelines for Cocoa
Advanced Memory Management Programming Guide
Archives and Serializations Programming Guide
沒有留言:
張貼留言