格式说明符

由于格式说明符的性质,如果要在字符串中包含百分比符号(%),则必须使用第二个百分比符号对其进行转义。

例:

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)强制转换来植入二进制等价物。