NSString stringWithFormat较少的参数

时间:2016-01-07 14:28:44

标签: ios nsstring

我们需要格式化字符串,但对于某些本地化,我们不会输出所有参数。但似乎输出的参数少于传递的参数:

NSString *string = [NSString stringWithFormat: @"%2$@", @"<1111>", @"<22222>"];
NSLog(@"String = %@", string);

输出

String = <1111>

虽然我输出第二个参数。 这是一个错误还是一个功能?

1 个答案:

答案 0 :(得分:3)

根据相关行业标准,IEEE specification

  

当使用编号的参数规范时,指定第N个参数要求所有主要参数,从第一个到第(N-1)个,指定格式字符串。

这意味着换句话说,你必须先使用字符串格式化程序中的第一个%1$@参数,然后才能使用第二个参数 - 所以,这根本不是错误。