我认为可以通过使用 NSValue 来使用value:withObjCType:
. 但是根据文档,不能使用可变长度类型。
您指定的类型必须是恒定长度。您不能在 NSValue 中存储 C 字符串、可变长度数组和结构以及其他不确定长度的数据类型——您应该为这些类型使用 NSString 或 NSData 对象。
假设:
//Sample data
typedef struct {
CGFloat lat;
CGFloat longi;
}Location;
Location list[2];
Location get[2];
Location l1;
l1.lat = 10.0;
l1.longi = 4.0;
Location l2;
l2.lat = 3.0;
l2.longi = 4.0f;
list[0] = l1;
list[1] = l2;
您可以NSData
根据您的要求使用以下方式:
//This is the part you want
//create NSData
NSData *data = [NSData dataWithBytes:list length:sizeof(list)];
//get c array from NSData
[data getBytes:&get length:sizeof(list)];
//accessing
methodUsingCarray(getList);
NSLog(@"%f",get[0].lat); // only if you need to access individual points
希望能帮助到你。