Этот init
метод выглядит нормально, хотя он должен быть реализован (и напечатан) как
-(id)init
{
if (self = [super init])
{
...
}
return self;
}
или аналогичный шаблон.
Ваши реализации copyWithZone неверны, они должны возвращать сохраненный объект, поэтому не возвращайте автоматически возвращаемое значение. Но вам нужно выпустить свою копию lundi
, потому что вы используете сохраняющий сеттер.
-(id)copyWithZone:(NSZone *)zone{
DefibHoraires *another = [[DefibHoraires alloc] init];
Horaires *lundiCopy = [lundi copyWithZone:zone];
another.lundi = lundiCopy;
[lundiCopy release];
return another;
}
Я не знаю, почему вы возвращаете экземпляр DefibHoraires
здесь, разве это не должен быть HorairesCollection
?
Возможно, неправильный метод copyWithZone: отвечает за сообщенную утечку (в любом случае это утечка).
Еще одно замечание: это хорошее защитное правило - использовать (copy)
для NSString
свойств вместо (retain)
для удаления побочных эффектов при прохождении NSMutableString
вместо.