【问题标题】:Populating malloc-ed array with CLLocationCoordinate2D使用 CLLocationCoordinate2D 填充 malloc 数组
【发布时间】:2011-01-20 20:04:46
【问题描述】:

到目前为止,我对 Objective-C 和 Cocoa 框架印象深刻,但我不得不说,我对创建 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-改为输入数组 :( 任何替代方法都将受到欢迎。

【问题讨论】:

    标签: iphone objective-c cocoa-touch


    【解决方案1】:

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

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

    【讨论】:

    • 嗯,我知道这是一个老问题,但您能否通过告诉我们更多关于 CFArray 类的信息来完成您的回答?即使在导入 corefoundation 库之后,我仍然得到 Unknown type CFArray,你的意思是 NSArray 吗? 当我声明 CFArray *myArray; 时。谢谢。
    • 文档比我有时间在这里输入的 2 或 3 行要好得多。阅读它们,它会有所帮助。
    猜你喜欢
    • 2018-01-04
    • 1970-01-01
    • 1970-01-01
    • 2016-07-24
    • 1970-01-01
    • 2015-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多