NSURLConnection奇怪的崩溃
问题描述:
我正在创建一个必须在Mac OS X Tiger上运行的Mac应用程序。出于一些奇怪的原因,它不断崩溃。调试器返回以下错误:NSURLConnection奇怪的崩溃
0x90a594d1 <+0033> mov (%edi,%edx,4),%eax
我试过谷歌的答案,但我什么也没找到。我究竟做错了什么?
-(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];
}
答
的解决方案是保留NSURLConnection的
如何“数据”所定义,哪里“田”从何而来? – 2012-02-12 07:31:09
在头文件上。 NSMutableData *数据; IBOutlet NSTextField *字段; – 2012-02-12 07:38:28
不能真正看到任何明显的错误,可能会导致崩溃,对不起,认为你将不得不尝试使用调试器追踪更多。你真的不应该在didReceiveResponse中分配数据:尽管它可能被多次调用。在loadPage中执行:相反,只需在didReceiveResponse中将长度重置为0即可。 – 2012-02-12 08:04:02