我发现了这个奇怪的事情。 XCode乐器告诉我这一行
return (SDZPerson*)[[[SDZPerson alloc] initWithNode: node] autorelease];
泄漏。但如果我把它改为:
SDZPerson* person = [[[SDZPerson alloc] initWithNode: node] autorelease];
return person;
仪器不再报告这个地方的泄漏。它真的是泄漏还是什么都没有?
提前谢谢大家。
答案 0 :(得分:0)
即使两个代码片段略有不同(第一个包含类型转换),我怀疑这些工具是否因为返回语句中的自动释放而将其表示为泄漏。
可以使用在return语句中添加autorelease。
你应该尝试一下
SDZPerson* person = [[SDZPerson alloc] init];
/** do your stuff here if needed */
return [person autorelease];
甚至
return [[[SDZPerson alloc] init] autorelease;