2012-02-12 7 views
2

私はMac OS X Tigerで動作する必要があるMacアプリケーションを作成しています。奇妙な理由のために、それはクラッシュし続けます。デバッガは次のエラーを返します。NSURLConnection bizarre crash

0x90a594d1 <+0033> mov (%edi,%edx,4),%eax

私はGoogleに答えを試みましたが、何も見つかりませんでした。私は間違って何をしていますか?

-(IBAction)loadPage:(id)sender{ 
    NSURL *URL = [NSURL URLWithString:@"http://www.google.com"]; 
    [NSURLConnection connectionWithRequest:[NSURLRequest requestWithURL:URL] delegate:self]; 
    NSLog(@"STARTED!"); 
} 

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{ 
    NSLog(@"STARTED!2"); 
    data = [[NSMutableData alloc]init]; 
} 

-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)d{ 
    NSLog(@"STARTED!3"); 
    [data appendData:d]; 
} 

- (void)connectionDidFinishLoading:(NSURLConnection *)connection{ 

    NSLog(@"STARTED!4"); 
    NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 
    NSLog(@"%@", str); 

    [webView loadHTMLString:str baseURL:[NSURL URLWithString:[field stringValue]]]; 

    [str release]; 
    [data release]; 
} 
+0

を保持することでした、そしてここで、「フィールド」から来るのでしょうか? –

+0

ヘッダーファイル。 NSMutableData *データ。 IBOutlet NSTextField *フィールド。 –

+0

クラッシュを引き起こす可能性がある明らかに間違っているものは実際には見えません。申し訳ありませんが、デバッガを使用して詳細を追跡する必要があると思われます。 didReceiveResponseでデータを割り当ててはいけません。なぜなら、複数回呼び出される可能性があるからです。代わりにloadPage:で行い、didReceiveResponseで長さを0にリセットするだけです。 –

答えて

1

ソリューションはNSURLConnection「データ」が定義されている方法