NSArray
и NSMutableArray
отправляют -retain
объектам, когда они добавляются, поэтому целесообразно сделать -release
объекты, которые вы добавляете явно, или использовать объекты с автоматическим выпуском.
ВотКраткий пример метода -init
класса Tuner
:
- ( id )init
{
NSInteger i;
Note *note;
self = [ super init ];
if ( self ) {
notes = [[ NSMutableArray alloc ] initWithCapacity: 88 ];
for ( i = 0; i < 88; i++ ) {
note = [[ Note alloc ] initWithKey: i ];
[ notes addObject: note ];
[ note release ];
}
}
return( self );
}
Вам потребуется +alloc
каждый объект Note и -release
его, поскольку при добавлении его в массив он сохраняется.Чтобы уничтожить все объекты заметки, когда вы закончите, убедитесь, что ваш класс Tuner
освобождает массив в своем методе -dealloc
:
- ( void )dealloc
{
[ notes release ]; // this sends release to all objects in the array, too
[ super dealloc ];
}