格式說明符

由於格式說明符的性質,如果要在字串中包含百分比符號(%),則必須使用第二個百分比符號對其進行轉義。

例:

int progress = 45;//percent
NSString *progressString = [NSString stringWithFormat:@"Progress: %i%%", (int)progress];

NSLog(progressString);//logs "Progress: 45%"

不存在 BOOL 型別的格式說明符。

常用解決方案包括:

BOOL myBool = YES;
NSString *boolState = [NSString stringWithFormat:@"BOOL state: %@", myBool?@"true":@"false"];

NSLog(boolState);//logs "true"

它利用三元運算子來轉換字串等價物。

BOOL myBool = YES;
NSString *boolState = [NSString stringWithFormat:@"BOOL state: %i", myBool];

NSLog(boolState);//logs "1" (binary)

它利用(int)強制轉換來植入二進位制等價物。