2012-03-26 166 views
0

编辑:它的工作原理,但它需要很长的时间才能完成。 这是正常的,还是有办法优化它?适用于iOS模拟器,但不适用于iOS设备?

谢谢

我在我的项目中使用DDUnitConverter转换货币。

在iOS模拟器上一切正常,但在尝试转换iOS设备(iPhone 4 iOSv5.1)上的货币时会挂起。我环顾四周寻找解决这个问题,但找不到任何东西。这是我用来兑换货币的代码。在DDUnitConverter内的代码可以在这里找到:https://github.com/davedelong/DDUnitConverter/downloads

if ([Number.text isEqualToString:@""] || [picklable.text isEqualToString:@"no selection"] || [picklable2.text isEqualToString:@"no selection"]) { 
    return; 
} 

if ([Number.text isEqualToString:@"0"]) { 
    Result.text = @"0"; 
    return; 
} 

int fromType; 
int toType; 

fromType = [list indexOfObject:picklable.text]; 
toType = [list indexOfObject:picklable2.text]; 

NSNumberFormatter * f = [[NSNumberFormatter alloc] init]; 
[f setNumberStyle:NSNumberFormatterDecimalStyle]; 
NSNumber * from = [[f numberFromString:Number.text] retain]; 
[f release]; 

NSNumber *to = [[[DDUnitConverter currencyUnitConverter] convertNumber:from fromUnit:fromType toUnit:toType] retain]; 
float toto = [to floatValue]; 
Result.text = [NSString stringWithFormat:@"%.4f %@", toto, picklable2.text]; 

if ((toto == 0 || toto == [Number.text floatValue]) && picklable.text != picklable2.text) { 
    Result.text = @"No Internet Connection or Previous Data"; 
} 

[from release]; 
[to release]; 

[Result flashScrollIndicators]; 

希望有人能帮助我,谢谢

+0

挂起可能意味着疯狂的循环,挂起可能意味着崩溃,挂起可能意味着疯狂的发送。挂起太模糊!崩溃日志请。 – CodaFi 2012-03-26 21:22:11

+0

它不会崩溃,而且我很确定没有环路 – 2012-03-26 21:33:54

+0

如果它是一个Web服务,那么你就无能为力。如果它是本地的,你可以派遣它。 – CodaFi 2012-03-26 21:56:41

回答

0

你的代码似乎对我很好,但你使用的是DDUnitConverter。我从来没有使用它,但我想它需要互联网连接来从互联网加载数据。如果服务器需要很长时间来回答,您的应用可能会挂起连接。

您可以尝试使用dispatch_async异步连接到服务器,这可让您的应用程序在后台下载数据。

+0

正确,但它在iOS模拟器上完美地工作? – 2012-03-27 01:23:28

+0

您是否尝试删除NSNumber *为= [[[DDUnitConverter currencyUnitConverter] convertNumber:from fromUnit:fromType toUnit:toType] retain];从你的代码?这有什么区别吗? – Beppe 2012-03-27 11:27:55

0

凡是采取令人惊讶的长期做应该出动。像这样:

dispatch_async(dispatch_get_global_queue(), ^(void) { 
    [self doReallyAmazinglyComplicatedProcessing]; 
}); 
+0

哈哈,好吧谢谢我会尝试“doReallyAmazinglyComplicatedProcessing”;)虽然 – 2012-03-27 01:24:32

+0

Yup我尝试了 – 2012-03-27 16:45:31

相关问题