3

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

我最初有这个 dealloc 方法:

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

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

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

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

谢谢,

缺口

4

2 回答 2

10

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

- (void) dealloc {
  [rect release];
  [super dealloc];
}
于 2010-01-07T16:12:51.627 回答
0

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

除非你没有子类化NSObject......

于 2010-01-07T16:13:15.900 回答