[NSMutableData data]和[[NSMutableData alloc] init]之间的区别

Que*_*low 0 iphone ios

我正在我的应用程序中进行JSON解析,当我使用responseData = [NSMutableData data]; 它在[responseData setLength:0]上崩溃;

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {

   [responseData setLength:0];   // CRASH HERE

}
Run Code Online (Sandbox Code Playgroud)

当我使用responseData = [[NSMutableData alloc] init]时; 我的程序运行正常.我已经在.h文件中创建了属性

@property (strong, nonatomic) NSMutableData* responseData;
Run Code Online (Sandbox Code Playgroud)

并在.m文件中合成

@synthesize responseData;
Run Code Online (Sandbox Code Playgroud)

问题:[NSMutableData data][[NSMutableData alloc] init]之间有什么区别;

谢谢

Dav*_*ist 6

[NSMutableData data]返回一个自动释放的对象,同时[[NSMutableData alloc] init]返回一个保留的对象.