我有以下代码,从中我得到一个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在内存中的任意位置访问“对象”,因为它不知道(或不在乎)您实际提供了多少个参数。

10-08 06:00