簡體   English   中英

在iOS模擬器上可以使用,但在iOS設備上不能使用嗎?

[英]Works on iOS Simulator but not on iOS device?

編輯:它可以工作,但是要花很長時間才能完成。 這是正常現象,還是有優化方法?

謝謝

我在項目中使用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];

希望有人可以幫助我,謝謝

任何需要花費很長時間的事情都應該派遣出去。 像這樣:

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

您的代碼對我來說似乎還可以,但是您正在使用DDUnitConverter。 我從未使用過它,但我想它需要Internet連接才能從Internet加載數據。 如果服務器需要很長時間來回答,您的應用程序可能會掛起連接。

您可以嘗試使用dispatch_async異步連接到服務器,這使您的應用程序可以在后台下載數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM