NSString stringWithFormat较少参数

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

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

输出

 String =  

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

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

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


换句话说,你必须在你的地址格式化程序中使用第一个%1$@参数,然后才能使用第二个 – 所以,它根本不是一个bug。