- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有 2 个 NSArray(实际上是可变的),我试图将它们转换为 C 风格的 double 组,用于我将它们传递给的 c 例程。
这是我的 Objective-C 例程:
NSMutableDictionary *childDictionary = [myParentDictionary objectForKey:resort_code];
latitudeArray = [childDictionary objectForKey:@"lat"];
longitudeArray = [childDictionary objectForKey:@"lon"];
int nvert = [latitudeArray count];
double laArray[nvert];
double loArray[nvert];
for(int i=0; i<nvert; i++) {
double dLat = [[latitudeArray objectAtIndex:i]doubleValue];
double dLon = [[longitudeArray objectAtIndex:i]doubleValue];
laArray[i] = dLat;
loArray[i] = dLon;
}
这在 3G iPhone 上需要超过 3-8 秒(在模拟器上是瞬时的——这是在设备上测试的另一个原因)
有没有更快的方法?我必须以 laArray[i]
和 loArray[i]
作为 c 风格的 double 组结束。
(为了评论者的利益扩展问题):每个数组由@"38.448745"(纬度)和@"-122.9847684"(经度)样式内容组成。我这样做是为了将其推到 NSArray 上,lat 和 lon 需要是对象。我只是用了:
[latitudeArray addObject:[NSString stringWithFormat: @"%.10f",dlat]];
[longitudeArray addObject:[NSString stringWithFormat: @"%.10f",dlon]];
我想我可以将其更改为:
[latitudeArray addObject:[NSNumber numberWithDouble: @"%.10f",dlat]];
[longitudeArray addObject:[NSNumber numberWithDouble: @"%.10f",dlon]];
...这可能会减少
的转换时间double dLat = [[latitudeArray objectAtIndex:i]doubleValue];
但我是否仍然需要那条确切的行来将 NSString 转换为 double?它可能工作得更快?
谢谢
最佳答案
dlat
是 double ,对吧?
所以代替:
[latitudeArray addObject:[NSString stringWithFormat: @"%.10f",dlat]];
做:
[latitudeArray addObject:[NSNumber numberWithDouble:dlat]];
它们都对 doubleValue
做出响应,但是 NSNumber
不需要进行任何字符串解析,因为它已经存储为数值。而且您根本不需要访问字符串。
关于iphone - 将 NSArrays 转换为 C 样式( double )数组的最快例程是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2225304/
我最近购买了《C 编程语言》并尝试了 Ex 1-8这是代码 #include #include #include /* * */ int main() { int nl,nt,nb;
早上好!我有一个变量“var”,可能为 0。我检查该变量是否为空,如果不是,我将该变量保存在 php session 中,然后调用另一个页面。在这个新页面中,我检查我创建的 session 是否为空,
我正在努力完成 Learn Python the Hard Way ex.25,但我无法理解某些事情。这是脚本: def break_words(stuff): """this functio
我是一名优秀的程序员,十分优秀!