【发布时间】:2012-12-01 07:07:35
【问题描述】:
我有一个使用 ARC 库的非 ARC 项目。我很困惑是否应该释放库方法返回的对象。举个例子:
- (void)test{
LibObject* obj1 = [[LibObject alloc] init];
LibObject* obj2 = [obj1 otherObj];
[obj1 release]; //should I release it?
[obj2 release]; //should I release it?
}
据我所知,如果对象在自动释放池中,我应该不理会它。否则,我应该释放它。
但是,the ARC document 这么说
当从这样的函数或方法返回时,ARC 在返回语句的求值点保留值,然后离开所有局部范围,然后平衡保留,同时确保值跨越调用边界。在最坏的情况下,这可能涉及自动释放,但调用者不能假定该值实际上在自动释放池中。
文档是否暗示我应该始终释放对象,因为我不能假设对象是自动释放的?
【问题讨论】:
标签: objective-c ios automatic-ref-counting