Objective c stringWithFormat:@";%1$@%2$d“;做
我正在学习Xcode计算器教程,我不太确定Objective c stringWithFormat:@";%1$@%2$d“;做,objective-c,Objective C,我正在学习Xcode计算器教程,我不太确定%1$@%2$d代表什么。请指导我。此格式用于显式选择字符串中应替换的参数,因此1$用于第一个参数,2$用于第二个参数等 '@'用于ObjC对象(通常显示对象的描述),'d'用于整数 在这种情况下,也可以简单地写为: stack = [NSString stringWithFormat:@"%1$@%2$d", stack, number]; 逻辑上分解表示您需要一个字符串(从格式为的字符串中获得),显示两个项目(从字符串后面的项目中可以看到),以及格
%1$@%2$d
代表什么。请指导我。此格式用于显式选择字符串中应替换的参数,因此1$
用于第一个参数,2$
用于第二个参数等
'@'
用于ObjC对象(通常显示对象的描述),'d'
用于整数
在这种情况下,也可以简单地写为:
stack = [NSString stringWithFormat:@"%1$@%2$d", stack, number];
逻辑上分解表示您需要一个字符串(从格式为的字符串中获得),显示两个项目(从字符串后面的项目中可以看到),以及格式中%符号的数量
%1$@%2$d用于两个项目,您可以按%、%1和%2的第一个和第二个平均值对它们进行细分
%1$@-@表示将转换为字符串的对象
%2$d-d表示十进制。
%@
表示参数是Objective-C对象,它发送一个描述选择器以获取将插入到最终字符串中的字符串
%1$@
说了同样的话,但指定了第一个参数
%d
是一个有符号的32位整数
%2$d
指定第二个参数是有符号的32位整数。我假设您知道%@
和%d
的意思。默认情况下,第一个说明符(例如%@
)将替换为参数列表中第一个参数的值,依此类推。但是,n$
允许您指定参数,在该位置使用其值替换包含n$
的说明符
事实上,一个简单的例子更清楚:
[NSString stringWithFormat:@"%1$@%2$d", stack, number];
但是,它不是
$1
,它是1$
:)-一定做得太快了!不知道为什么这个问题还没有结束。或者为什么人们不喜欢我的答案。
[NSString stringWithFormat:@"%1$@%2$d", stack, number];
NSString *aString = @"ultimate answer";
int anInteger = 42;
NSLog(@"The %@ is %d.", aString, anInteger); // The ultimate answer is 42.
NSLog(@"The %1$@ is %2$d.", aString, anInteger); // The ultimate answer is 42.
NSLog(@"%2$d is the %1$@.", aString, anInteger); // 42 is the ultimate answer.