2012-03-26 167 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

相關問題