执行以下代码段后,我的应用程序崩溃(iOS/iPhone):
NSHTTPURLResponse *urlResponse = nil;
NSError *error = [[NSError alloc] init];
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&error];
NSString *result = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
if ([urlResponse statusCode] ==500 ) {
...
}
} else {
NSLog(@"Response ==> status= %d", [urlResponse statusCode];
}
[result release];
[error release];
在 else 语句处到达的代码,statusCode 为“0”并且代码崩溃,并显示 [CFError release] 已发送到已释放实例的信息。我注释掉了 [error release] 行并且崩溃没有再次发生。但是,我们在这里引入了泄漏。
错误变量出了什么问题?它是从 sendSynchonousRequest 中使用的吗?
解决问题的最佳方法是什么?