我知道使用Alloc、New或Copy时需要释放对象,如果我保留一个对象也需要释放它。但是如果在方法的结尾有以下语句:
return [[UIImage alloc] initWithContentsOfFile:path];
我拥有UIImage
对象,因为我分配了内存空间,但我不再拥有对它的引用,因为它已经被返回给调用者。在我的dealloc()
方法中,我无法释放它,因为我没有引用。
我的问题是,这样做是否正确:
return [[[UIImage alloc] initWithContentsOfFile:path] autorelease];
我认为在这种情况下,调用方可以保留返回的对象,如果他们想要拥有该对象并最终需要释放它,则必须自行释放。
谢谢您的帮助。