gpt4 book ai didi

iphone - [NSString stringWithFormat] 采用什么类型的参数?

转载 作者:行者123 更新时间:2023-12-01 17:56:57 24 4
gpt4 key购买 nike

我知道方法stringWithFormat通常使用如下:

[NSString stringWithFormat: @"%@ %@", arg1, arg2];

我的问题是,这个方法的最后一个参数的类型到底是什么(规范中带有 ... 的那个)。

我希望能够执行以下操作:
NSArray *array = [NSArray arrayWithObjects: @"Hi", @"Bob"];
[NSString stringWithFormat: @"%@ %@", array]

如您所见,一个数据结构 array持有所有论点。不幸的是,这不起作用。有没有办法做到这一点,这样我就不必在 stringWithFormat 中明确列出我的所有论点?方法?

最佳答案

What type of arguments does [NSString stringWithFormat] take?



无论您使用它的格式字符串告诉它什么类型。

My question is, what exactly is the type of the last argument of this method



这不是最后一个论点。这是一个称为“可变参数函数”(或方法,在这种情况下)的概念。 ...表示该函数可以接受任意数量的参数。这是 C 的一个特性,您可以通过使用 C 标准库头文件 <stdarg.h> 中的类型、宏和函数来使用它。 .示例:这将创建一个包含给定对象的数组。
- (NSArray *)arrayWithCountAndObjects:(int)count, ...
{
NSMutableArray *arr = [NSMutableArray array];

va_list args;
va_start(args, count);
for (int i = 0; i < count; i++) {
[arr addObject:va_arg(args, id)];
}
va_end(args);

return arr;
}

但是,你是什​​么 应该 在这里做的只是简单地加入数组中的项目,而不是使用可变参数来破解,因为这是不必要的:
NSArray *arr = @[@"Hello", @" ", @"world!"];
NSString *s = [arr componentsJoinedByString:@""];

关于iphone - [NSString stringWithFormat] 采用什么类型的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15690861/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com