如何使用CLLocationCoordinate2D的桥

时间:2013-03-01 10:27:07

标签: objective-c struct cllocation bridge

AM尝试将CLLocationCoordinate2D []添加到NSMutableArray并将其作为参数发送。但是(__bridge id)正在崩溃应用程序。结构到id转换是个问题。有谁可以请让我知道如何使用这个。

CLLocationCoordinate2D坐标[1000];

coordinates [index] ---循环中添加到它的所有坐标。

NSMutableArray *coorArray = [NSMutableArray array];
[coorArray addObject:(__bridge id)(coordinates)]; crashes here

2 个答案:

答案 0 :(得分:1)

你应该看+[NSValue valueWithBytes:objCType:]而不是(__bridge)演员。桥是用于其他事情。

例如为: [NSValue value:&coordinate withObjCType:@encode(CLLocationCoordinate2D)];

我想也可以对整个数组进行编码

答案 1 :(得分:1)

使用:

NSMutableArray *coorArray = [NSMutableArray array];
[coorArray addObject:[NSValue valueWithPointer:coordinates]];

然后当你想要检索struct:

的数组时
CLLocationCoordinate2D coordinates[] = [coorArray objectAtIndex:0].pointerValue;

C数组不是对象,因此无法桥接。