次のスニペットを実行した後、アプリがクラッシュしました (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 から使用されていますか?
問題を解決する最適な方法は何ですか?