这两种dealloc方法之间有什么区别吗?

时间:2010-01-07 16:06:53

标签: objective-c memory-management dealloc

所以我重写了dealloc方法,因为该对象是由另一个对象组成的复合对象。

我最初有这种dealloc方法:

-(id) dealloc; // Override to release the Rectangle object’s memory 
{
    [rect release];
    [super dealloc];
    return self;
}

在看完书后,我看到了另一个答案:

{
   [rect release];
   return [super dealloc];
}

只是想知道两者是否同等有效。

谢谢,

尼克

2 个答案:

答案 0 :(得分:10)

他们都错了。 dealloc返回void,而不是id

- (void) dealloc {
  [rect release];
  [super dealloc];
}

答案 1 :(得分:0)

我刚检查了NSObject referencedealloc没有返回类型。所以,我认为定义这样的签名是不正确的。因此,对dealloc的调用不应期望返回值。

除非您不是NSObject ...

的子类