【发布时间】:2011-10-01 05:43:39
【问题描述】:
以下 Objective C 代码的预期结果是什么?
int intValue = 1;
NSString *string = [NSString stringWithFormat:@"%+02d", intValue];
我以为字符串的值是“+01”,结果是“+1”。不知何故,格式字符串“+01”中的“0”被忽略了。将代码更改为:
int intValue = 1;
NSString *string = [NSString stringWithFormat:@"%02d", intValue];
字符串的值现在是“01”。它确实会生成前导“0”。但是,如果 intValue 为负数,如:
int intValue = -1;
NSString *string = [NSString stringWithFormat:@"%02d", intValue];
字符串的值变成“-1”,而不是“-01”。
我错过了什么吗?或者这是一个已知问题?推荐的解决方法是什么? 提前致谢。
【问题讨论】:
-
我怀疑这个数字给出了包括符号在内的字段宽度,而不是位数。
-
@Mark,你是对的。谢谢。
-
@Mark Byers,+1 评论!你是对的!
标签: iphone objective-c ios nsstring