格式说明符
由于格式说明符的性质,如果要在字符串中包含百分比符号(%),则必须使用第二个百分比符号对其进行转义。
例:
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)强制转换来植入二进制等价物。