我正在阅读一本关于Objective-C的书,并且未经任何解释而得到以下内容:
NSLog(@"%-2i %i", n1, n2);
%-2i是什么意思它只是以%i的方式打印出数字?
谢谢。
答案 0 :(得分:2)
NSLog()
和[NSString stringWithFormat:]
使用printf(3)
格式规则,并且来自printf manpage:
负字段宽度标志;转换后的值将被保留 调整了场边界。除了n次转换之外,还有 转换后的值用空格填充在右边,而不是在空格上 留下空白或零。 A - 如果两者都给出,则覆盖0。
因此它使用2个左对齐的空格打印整数。
答案 1 :(得分:1)
我相信它左对齐第一个整数到2个字符,这里有一个更好的答案:
答案 2 :(得分:1)
这类问题通常不受欢迎,因为在文档中查找起来很简单,但是让我添加相关链接:
在Google上搜索NSlog,让我们进入苹果文档的此页面:https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Miscellaneous/Foundation_Functions/Reference/reference.html
告诉我们一些"格式化字符串"和@"format"
(可能没有直接链接)。
但是当你将它插入顶部的搜索栏时,你最终会进入https://developer.apple.com/library/mac/documentation/CoreFoundation/Conceptual/CFStrings/formatSpecifiers.html。同样,它没有列出%i
,但会告诉您查看IEEE fprintf文档:http://pubs.opengroup.org/onlinepubs/009695399/functions/printf.html。
最后,您找到了%i
和-2i
的定义:
负字段宽度被视为' - '标志后跟正字段宽度。如果省略精度,则采用负精度