我有一个有四个标签的应用程序。在每个选项卡中,我使用 nsurlconnection 连接到远程服务器,获取响应并相应地显示。在测试应用程序时,我随机崩溃。如果我再次尝试重现崩溃,我不会崩溃。我不明白崩溃的根本原因是什么。我启用了 NSZombie,符号化的崩溃日志,检查了内存泄漏但没有运气。
我在 Xcode 3 中启动项目,现在我将相同的项目导入 Xcode 4.2,那么 Xcode 的兼容性有什么问题吗?
我在所有选项卡中使用相同的名称作为 nsurlconnection,例如在选项卡 1 中,我将 nsurlconnection 定义为 conn,选项卡 2 将 nsurlconnection 定义为 conn。
这个定义会引起任何问题吗?
请帮我解决这个随机崩溃
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL: url];
conn = [[NSURLConnection alloc] initWithRequest:request delegate:self];
if(label != nil){
progressView = [[ProgressView showHUDAddedTo:self.tabBarController.view animated:YES] retain];
progressView.labelText = label;
}
[request release];
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
NSLog(@"didReceiveresponse");
if ([response isKindOfClass: [NSHTTPURLResponse class]]) {
if([(NSHTTPURLResponse *)response statusCode] == 200){
}
else{
//show Connection Error Alert
}
}
responseData = [[NSMutableData alloc]init];
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
NSLog(@"didReceiveData");
[responseData appendData:data];
}
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
[progressView hide:YES];
NSLog(@"didFail");
//show failed alert
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
NSLog(@"didfinish loading");
if([responseData length] > 0)
{
//handles response data
}
}