自动释放时泄漏

时间:2011-08-25 09:12:43

标签: xcode pointers return memory-leaks autorelease

我发现了这个奇怪的事情。 XCode乐器告诉我这一行

return (SDZPerson*)[[[SDZPerson alloc] initWithNode: node] autorelease];

泄漏。但如果我把它改为:

SDZPerson* person = [[[SDZPerson alloc] initWithNode: node] autorelease];
return person;

仪器不再报告这个地方的泄漏。它真的是泄漏还是什么都没有?

提前谢谢大家。

1 个答案:

答案 0 :(得分:0)

即使两个代码片段略有不同(第一个包含类型转换),我怀疑这些工具是否因为返回语句中的自动释放而将其表示为泄漏。

可以使用在return语句中添加autorelease。

你应该尝试一下

SDZPerson* person = [[SDZPerson alloc] init];
/** do your stuff here if needed */
return [person autorelease];

甚至

return [[[SDZPerson alloc] init] autorelease;