我了解在使用 Alloc、new 或 copy 时,您拥有该对象并需要释放该对象。我明白,如果我保留一个对象,我需要释放它。
但是,如果我在方法的末尾有以下语句:
return [[UIImage alloc] initWithContentsOfFile:path];
我拥有该UIImage
对象,因为我分配了内存空间,但我不再引用它,因为它已返回给调用者。在我的dealloc()
方法中,我无法发布它,因为我没有参考。
所以我的问题是,这是否正确:
return [[[UIImage alloc] initWithContentsOfFile:path] autorelease];
我相信在这种情况下,调用者可以保留返回的对象,如果他们想获得所有权并最终需要释放自己。
谢谢你的帮助。