将HTTP响应转换为string后的EXC_BAD_ACCESS

我有以下代码,从中我得到一个EXC_BAD_ACCESS错误:

- (void)connectionDidFinishLoading:(NSURLConnection *)connection { NSString *responseString = [[NSString alloc] initWithData:receivedData encoding:NSUTF8StringEncoding]; NSLog(responseString); } 

奇怪的是,错误的访问错误实际上来自NSLog()行,当它试图访问responseString 。 我甚至尝试添加一个retainautorelease的第一行,但我仍然得到错误。

有关可能发生什么的任何想法? 据我所知,不应该有任何问题,因为我定义后立即调用它,所以responseString不应该被释放,是正确的吗?

编辑:我应该提到, receivedData是一个NSMutableData对象。

尝试

 NSLog(@"%@", responseString); 

您的responseString可能有一些“保留序列”,如%@%d
前者将导致NSLog访问内存中任意位置的“对象”,因为它不知道(或不关心)你实际提供了多less个参数。

试试NSLog (@"%@", responseString);