Какая разница между этими двумя методами деллок?

Поэтому я переопределяю метод dealloc, потому что объект является составным объектом, состоящим из одного другого объекта.

Первоначально у меня был этот метод dealloc:

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

Посмотрев книгу, я увидел другой ответ:

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

просто интересно, работают ли оба одинаково.

Спасибо,

Ник

2 ответа

Решение

Они оба не правы. dealloc возвращается voidне id:

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

Я только что проверил ссылку на NSObject: dealloc не имеет возвращаемого типа. Поэтому я считаю неправильным определять такую ​​подпись. Таким образом, призыв к dealloc не следует ожидать возвращаемого значения.

Если вы не подкласс NSObject...

Другие вопросы по тегам