将HTTP响应转换为string后的EXC_BAD_ACCESS
我有以下代码,从中我得到一个EXC_BAD_ACCESS错误:
- (void)connectionDidFinishLoading:(NSURLConnection *)connection { NSString *responseString = [[NSString alloc] initWithData:receivedData encoding:NSUTF8StringEncoding]; NSLog(responseString); }
奇怪的是,错误的访问错误实际上来自NSLog()
行,当它试图访问responseString
。 我甚至尝试添加一个retain
或autorelease
的第一行,但我仍然得到错误。
有关可能发生什么的任何想法? 据我所知,不应该有任何问题,因为我定义后立即调用它,所以responseString
不应该被释放,是正确的吗?
编辑:我应该提到, receivedData
是一个NSMutableData
对象。
尝试
NSLog(@"%@", responseString);
您的responseString
可能有一些“保留序列”,如%@
或%d
。
前者将导致NSLog
访问内存中任意位置的“对象”,因为它不知道(或不关心)你实际提供了多less个参数。
试试NSLog (@"%@", responseString);