来自Clang的"返回物体泄漏"是什么意思?

dbr*_*dbr 2 memory-leaks objective-c clang

这个问题之后,我在BEncoding.m中修复了一堆内存泄漏(最初来自这里)

我已经修复了所有明显的内存泄漏,但Clang发现了四个"返回对象泄漏"错误,我不知道如何排序:

完整的消息/适当的代码位是:

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

[1]方法返回一个具有+1保留计数的Objective-C对象(拥有引用)

[...]
snprintf(buffer, 32, "%lu:", [object length]);
[data appendBytes:buffer length:strlen(buffer)];
[data appendData:object];
return data;
Run Code Online (Sandbox Code Playgroud)

[3]对象作为拥有引用返回给调用者(传递给调用者的单个保留计数)

小智 7

你要:

return [data autorelease];

因为你把它交给来电者.