CLLocationCoordinate2D, не зная, сколько будет в массиве? - PullRequest
8 голосов
/ 13 августа 2010

Мне нужно построить массив, используя что-то вроде следующего:

CLLocationCoordinate2D  points[4];


    points[0] = CLLocationCoordinate2DMake(41.000512, -109.050116);

    points[1] = CLLocationCoordinate2DMake(41.002371, -102.052066);

    points[2] = CLLocationCoordinate2DMake(36.993076, -102.041981);

    points[3] = CLLocationCoordinate2DMake(36.99892, -109.045267);

Проблема в том, что я никогда не узнаю, сколько элементов будет в массиве, поэтому я могу указать количество. Есть ли способ создать массив CLLocationCoordinate2D и просто вставить новые координаты, не зная, какой будет итоговая сумма?

РЕДАКТИРОВАТЬ: моя конечная цель - использовать координаты для создания MKPolyline, используя метод polylineWithCoordinates, для которого требуется массив CLLocationCoordinate2D.

Ответы [ 2 ]

15 голосов
/ 13 августа 2010
// unpacking an array of NSValues into memory
CLLocationCoordinate2D *points = malloc([mutablePoints count] * sizeof(CLLocationCoordinate2D));
for(int i = 0; i < [mutablePoints count]; i++) {
    [[mutablePoints objectAtIndex:i] getValue:(points + i)];
}

MKPolyline *myPolyline = [MKPolyline polylineWithCoordinates:points count:[mutablePoints count]];
free(points);
0 голосов
/ 13 августа 2010

Упакуйте их в NSValue объект и бросьте в NSMutableArray.

...