私は自分のアプリが新しい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に他にも同様の質問があることは承知していますが、これを解決できるものはないようです。)