4 つのタブを持つアプリがあります。各タブで、nsurlconnection を使用してリモート サーバーに接続し、応答をフェッチして、それに応じて表示します。アプリのテスト中にランダムにクラッシュします。もう一度クラッシュを再現しようとしても、クラッシュしません。クラッシュの根本原因がわかりません。NSZombie を有効にし、クラッシュ ログをシンボリック化し、メモリ リークをチェックしましたが、うまくいきませんでした。
Xcode 3 でプロジェクトを開始し、同じプロジェクトを Xcode 4.2 にインポートしましたが、Xcode の互換性に問題はありますか?
また、タブ 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
}
}