在接受无限参数的方法中,如何在Objective-C中构造数组

在接受无限参数的方法中,如何在Objective-C中构造数组,objective-c,Objective C,我有以下方法定义: - (id)initTestName: (NSString*) name andTime: (int) time, ... { self = [super init]; if (self) { _name = name; _time = time; //The method goes here } return self; } - (id)initTestName: (NSString*) n

我有以下方法定义:

- (id)initTestName: (NSString*) name andTime: (int) time, ...  {
    self = [super init];
    if (self) {
        _name = name;
        _time = time;

       //The method goes here
    }
    return self;
}
- (id)initTestName: (NSString*) name andTime: (int) time andArg:(NSString*) arg, ...
时间之后的每个参数都将是一个字符串。我需要在启动器中定义一个方法,该方法接受每个传递的参数(可以是任意数量),然后创建一个字符串对象数组,其中每个对象都是单个字符串参数。 “如何在目标C中创建参数方法”这个问题并没有说明如何创建循环。
我真的很感激,如果你认为我是很新的编码之前,你谴责我的问题,阻止我不再问。< /P> < P>这里有一个更详细的答案: 由于参数将是字符串,因此必须向方法定义中至少添加一个:

- (id)initTestName: (NSString*) name andTime: (int) time, ...  {
    self = [super init];
    if (self) {
        _name = name;
        _time = time;

       //The method goes here
    }
    return self;
}
- (id)initTestName: (NSString*) name andTime: (int) time andArg:(NSString*) arg, ...
然后我们需要使用由四个宏组成的va_列表:

1) 用于指向变量参数列表的第一个元素的指针

va_list listPointer;
2) 现在,我们让listPointer指向列表中的第一个参数

va_start( listPointer, arg );
3) 接下来,我们将开始实际从“va_列表”本身检索值:


可能重复的“问题”是“如何在目标C中创建参数方法”并没有显示如何创建循环-是的,它显示了。看看所有的答案。谢谢,我还是不明白。我宁愿等待一个愿意回答我问题的人。如果您在链接的问题中包含一些试图使用答案的代码,并解释您遇到的问题,那么就更容易找到人帮助您。我想您需要
NSString*
,对于
va_arg
的第二个参数,不使用
int
。我同意您的意见,只是修复了它。
NSString*
,而不是
NSString