Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c stringWithFormat:@";%1$@%2$d“;做_Objective C - Fatal编程技术网

Objective c stringWithFormat:@";%1$@%2$d“;做

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]; 逻辑上分解表示您需要一个字符串(从格式为的字符串中获得),显示两个项目(从字符串后面的项目中可以看到),以及格

我正在学习Xcode计算器教程,我不太确定
%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.