您好,我不完全理解 obj-C 中的 autorelease 函数调用。
@interface A{
id obj;
}
@implementation A
-(void)myMethod;
{
obj = [BaseObj newObj]; //where newObj is a method like :[[[BaseObj alloc]init]autorelease];
}
-(void)anotherMehtod;
{
[obj someMeth]; //this sometimes gives me EXC_BAD_ACCESS
}
@end
所以为了解决这个问题,我放置了一个保留。现在如果我保留这个对象,我需要手动释放它吗?
最佳答案
如果您是对象的所有者 - 您有责任释放该对象。
如果您至少完成了以下其中一项操作,您就成为对象的所有者:
- 通过
alloc
实例化它 - 通过
保留
- 已通过
副本
有关更多详细信息,请阅读Object Ownership and Disposal
关于objective-c - Objective C 自动释放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4907529/