将HTTP响应转换为字符串后的EXC_BAD_ACCESS

时间:2011-02-14 17:40:44

标签: iphone objective-c ios

我有以下代码,我从中获得了EXC_BAD_ACCESS错误:

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

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

对可能发生的事情的任何想法?据我所知,不应该有任何问题,因为我在定义后立即调用它,所以responseString不应该被释放,对吗?

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

2 个答案:

答案 0 :(得分:5)

尝试

NSLog(@"%@", responseString);

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

答案 1 :(得分:0)

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