我一直在调整代码以使我的应用程序在新的 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 上还有其他类似的问题,但似乎没有一个可以解决这个问题。)