NSString字符串无格式参数



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

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

输出

String = <1111>

尽管我输出了第二个参数。这是bug还是功能?

根据相关行业标准,IEEE规范:

使用带编号的参数规范时,指定第N个参数需要在格式字符串中指定从第一个到第(N-1)个的所有前导参数


也就是说,在寻址使用第二个参数之前,必须在字符串格式化程序中的某个位置使用第一个%1$@参数,因此,这根本不是一个错误。

最新更新