1

私は自分のアプリが新しいiOS6/iPhone5で動作するようにコードを微調整してきました。

3Gを介して接続すると、iPhone5のウェルカム画面でアプリがハングするというユーザーからの通知が出るまで、すべてが正常に機能しているように見えました。すべて、wifiを使用して問題なく動作します。

彼は私にクラッシュログを送ってくれましたが、問題が次のコードにある「sendSynchronousRequest」の部分に関連していることに気づきました。

- (void)loadCurrentURL {   NSString *appURL = [NSString stringWithFormat:@"%@@%@", app_SERVER_URL, @"auth/app/register"];

NSHTTPURLResponse *response = [[NSHTTPURLResponse alloc] init];
NSError *error;

[NSURLConnection sendSynchronousRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:appURL]] returningResponse:&response error:&error];
if (response.statusCode == 200) {
    self.currentValidURL = app_SERVER_URL;
} else {
    self.currentValidURL = app_APPLE_TEST_URL;
}
}

そこで、AppleのドキュメントとここStackOverFlowで多くの調査を行った後、コードを次のように変更しました。

- (void)loadCurrentURL{   NSString *appURL = [NSString stringWithFormat:@"%@@%@", app_SERVER_URL, @"auth/app/register"];

 NSOperationQueue *queue = [[[NSOperationQueue alloc] init] autorelease];

 [NSURLConnection sendAsynchronousRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:appURL]]
 queue:queue
 completionHandler:^(NSURLResponse *response, NSData *data, NSError *error)
 {
 NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;
 if ([httpResponse statusCode] == 200) {
 self.currentValidURL = app_SERVER_URL;
 } else {
 self.currentValidURL = app_APPLE_TEST_URL;
 }
 }];
}

今の問題は、iPhone4デバイスとiOS5,6シミュレーターでハングすることです。

私は専門の開発者ではありません、私は学んでいるので、誰かがこれに対する答えを持っているかどうか知りたいです。どんな助けでも大いに感謝されます:)

よろしくお願いします。

(stackOverFlowに他にも同様の質問があることは承知していますが、これを解決できるものはないようです。)

4

0 に答える 0