我们需要格式化字符串,但对于某些本地化,我们不会输出所有参数。但似乎输出的参数少于传递的参数:
NSString *string = [NSString stringWithFormat: @"%2$@", @"<1111>", @"<22222>"];
NSLog(@"String = %@", string);
输出
String = <1111>
虽然我输出第二个参数。 这是一个错误还是一个功能?
答案 0 :(得分:3)
根据相关行业标准,IEEE specification:
当使用编号的参数规范时,指定第N个参数要求所有主要参数,从第一个到第(N-1)个,指定格式字符串。
这意味着换句话说,你必须先使用字符串格式化程序中的第一个%1$@
参数,然后才能使用第二个参数 - 所以,这根本不是错误。