使用CLLocationCoordinate2D填充malloc-ed数组

时间:2011-01-20 20:04:47

标签: iphone objective-c cocoa-touch

到目前为止,我对Objective-C和Cocoa Frameworks印象非常深刻,但我不得不说,我对创建一个CLLocationCoordinate2D数组以传递给polylineWithCoordinates的最佳方法感到困惑:count:我很漂亮确定这就是我需要设置数组的方式。

NSUInteger numPoints = [locationData count]; 
CLLocationCoordinate2D *arrayPtr = malloc(numPoints * sizeof(CLLocationCoordinate2D));

但我不知道如何访问每个位置,我以为我可以使用arrayPtr [i],但我似乎无法让它正常工作。

for(NSUInteger counter=0; counter<numPoints; counter++) {
    arrayPtr[counter] = [[locationData objectAtIndex:counter] coordinate];
}

编辑:

我现在正在使用它,我在调试器中查看内存错误,但是有另一种方式(可能没有malloc)我尝试使用NSValue在NSArray中编码值,但却发现我需要一个c-而不是类型数组:(任何替代方法都是最受欢迎的。

1 个答案:

答案 0 :(得分:1)

那应该是有效的 - 你得到了什么错误?

更好的方法可能是使用CFArray而不是手动管理malloc。