你好,我不完全理解obj-C中的autorelease函数调用。Objective 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
所以要解决这个问题,我把一个保留。现在,如果我保留它,我需要手动释放这个对象吗?
一个侧面说明:在可可的规则是,如果一个方法名以`new`,`copy`,`retain`,或`alloc`启动,调用者必须发送`release'或`autorelease`来平衡它。所以名为`newObj`的方法不应该自动释放它自己的结果。 – 2011-02-05 15:04:20