是否有一种优雅的方法可以从NSDecimalNumber值数组创建CLLocationCoordinate2D对象?也许是一个递归函数?
我是目标C的新手,我对此感到困难。
以下是我正在使用的数据结构示例。
NSDecimalNumber值的数组:
NSLog(@"path: %@", [path description]);
返回
path: (
"-71.4826609644423",
"27.7231737704478",
"-71.4826608497223",
"27.7231120144099",
"-71.4826391681679",
"27.7228678610506",
...
"-71.482414263977",
"27.7225217655116",
)
我可以像这样手动创建CLLocationCoordinate2D对象:
CLLocationCoordinate2D pathCoords[5]={
CLLocationCoordinate2DMake(27.7231737704478,-71.4826609644423),
CLLocationCoordinate2DMake(27.7231120144099,-71.4826608497223),
CLLocationCoordinate2DMake(27.7228678610506,-71.4826391681679),
...
CLLocationCoordinate2DMake(27.7225217655116,-71.482414263977),
};
欢迎任何编码建议。 谢谢!
答案 0 :(得分:4)
我假设您已经创建了一个名为CLLocationCoordinate2D
的{{1}}结构,其大小为5。
pathCoords
你问题的本质不是递归的,所以如果你去递归 - 那就太过分了。
答案 1 :(得分:0)
最终解决方案包括将NSDecimalNumbers类型转换为doubleValues:
for(int i=0; i<[path count]/2; i++) {
pathCoords[i] = CLLocationCoordinate2DMake([[path objectAtIndex:2*i+1] doubleValue], [[path objectAtIndex:2*i] doubleValue]);