NSMutableData对象无法识别选择器?

ian*_*675 0 iphone objective-c

我正在尝试为我正在开发的网站编写一个iPhone伴侣.我试图通过使控制器成为NSURLConnection的委托来从我的网站获取JSON数据.这是问题,我有一个名为responseData的NSMutableData对象,如下所示:

responseData = [NSMutableData dataWithLength:0];
Run Code Online (Sandbox Code Playgroud)

我希望附加数据:

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
    [responseData appendData:data];
}
Run Code Online (Sandbox Code Playgroud)

但是,这会导致我的应用程序崩溃并在控制台中说:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', 
reason: '-[__NSCFArray appendData:]: unrecognized selector sent to instance 
0x6d0a640'
Run Code Online (Sandbox Code Playgroud)

我非常有信心应该识别appendData,所以我不知道这里的问题是什么......

Phi*_*ert 6

你必须保留对象:

responseData = [NSMutableData dataWithLength:0];

[responseData retain];
Run Code Online (Sandbox Code Playgroud)

但这不是通常的做法.只需使用alloc/init:

responseData = [[NSMutableData alloc] init];
Run Code Online (Sandbox Code Playgroud)

但是别忘了在dealloc中发布:

[responseData release];
Run Code Online (Sandbox Code Playgroud)