Вот почему вы должны использовать свойства или явные методы доступа.
Если у вас было это:
@interface myObject : NSObject
{
NSMutableArray *classMembers;
}
@property(nonatomic, retain) NSMutableArray *classMembers;
@end
@implementation myObject
@synthesize classMembers;
-(id) init{
if (self=[super init]) {
self.classMembers=[[NSMutableArray alloc] initWithCapacity:1];
}
return self;
}//-------------------------------------(id) init------------------------------------
-(void) dealloc{
[classMembers release];
[super dealloc];
}//-------------------------------------(void) dealloc------------------------------------
@end
Вы не должны (и никогда не должны) скучать по удержанию имущества. Это устраняет все утечки и чрезмерное высвобождение свойств.
Если объект свойства утекает, то вы автоматически знаете, что он сохраняется в другом объекте, кроме экземпляра класса, содержащего свойство.