
所謂格式化字串係指 formatStromg 具有轉換格式字符,轉換格式字符如下表
| 轉換格式字符 | 說明 |
|---|---|
| %@ | 物件 |
| %% | % 字元 |
| %d, %D | 有正負號 32 位元整數 |
| %u, %U | 無正負號 32 位元整數 |
| %x | 無正負號 32 位元整數,用小寫英文字母的十六進位印出 |
| %X | 無正負號 32 位元整數,用大寫英文字母的十六進位印出 |
| %o, %O | 無正負號 32 位元整數,用八六進位印出 |
| %f | 64 位元浮點數 |
| %e | 64 位元浮點數,用小寫英文字母的科學記號印出 |
| %E | 64 位元浮點數,用大寫英文字母的科學記號印出 |
| %g | 64 位元浮點數,同 %e 印出樣式,指數的絕對值小於或等於 4 便直接印出數字 |
| %G | 64 位元浮點數,同 %E 印出樣式,指數的絕對值小於或等於 4 便直接印出數字 |
| %c | 8 位元無正負號 ASCII 字元 |
| %C | 16 位元無正負號 ASCII 字元 |
| %s | 8 位元無正負號字元 |
| %S | 16 位元 Unicode 字元 |
| %p | 指標 |
| %a | 64 位元浮點數,用 16 進位 (0x) 的科學記號印出 |
| %A | 64 位元浮點數,用 16 進位 (0x) 的科學記號印出 |
| %F | 64 位元浮點數 |
單一格式化字串可以有多個轉換格式字符,格式化字串後所接參數的型態與個數也需要與轉換格式字符相同。舉例如下
#import <Foundation/Foundation.h>
int main(int argc, char *argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int a = 4;
int b = 1;
NSLog(@"狗狗有 %d 隻腳, %d 條尾巴!", a, b);
[pool drain];
return 0;
}
/* 《程式語言教學誌》的範例程式
http://pydoing.blogspot.com/
檔名:formattingdemo.m
功能:示範 Objective-C 程式
作者:張凱慶
時間:西元 2012 年 7 月 */此例 NSLog() 中的格式化字串有兩個轉換格式字符 %d ,因此另外加入兩個 int 型態 (type) 的變數 (variable) a 與 b
NSLog(@"狗狗有 %d 隻腳, %d 條尾巴!", a, b);
我們在 demo.m 中是直接以一個 NSString 字串物件當 NSLog() 的參數
// 呼叫 NSLog() 函數,印出 s1 的內容 NSLog(s1);
在新版的 Xcode 中,直接以單一個 NSString 字串物件當 NSLog() 的參數,編譯時可能會出現警告訊息,建議改寫成格式化字串的方式,如下
NSLog(@"%@", s1);
NSLog() 是個功能單純的函數,對了,我們還沒詳細介紹過 Objective-C 的函數咧!先看看看所有可執行程式必定有的 main() 吧!
| 中英文術語對照 | |
|---|---|
| 函數 | function |
| 格式化字串 | formatting string |
| 物件 | object |
| 參數 | argument |
| 型態 | type |
| 變數 | variable |
您可以繼續參考
基礎篇
相關目錄
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
沒有留言:
張貼留言