Редактировать: Просто используйте собственный массив Си.Вариаичный метод здесь вам не поможет.
В вашем случае, поскольку у вас есть неопределенное количество аргументов, вам придется переписать его в следующем виде:
- (id)initWithVertices:(vertex)firstVertex;
, который запускает цикл while до тех пор, пока не достигнет вершины, указанной как недопустимой (это будет ваша точка останова), примерно так:
vertex currentVertex, invalidVertex = // some invalid value, like {-1, -1}
while ((currentVertex = va_arg(args, vertex) != invalidVertex) {
// initialization code with the current vertex
// when we hit 'invalidVertex', which will be at the end of the list, stop
}
Код, подобный этому, должен быть запущен так:*
[[MyObject alloc] initWithVertices:firstVertex, secondVertex, thirdVertex, nullVertex];
nullVertex
должен находиться в конце списка, чтобы указать последнюю из допустимых вершин (так же, как метод NSArray
s arrayWithObjects:
должен иметь nil
в концесписка).