Не забудьте использовать self при обращении к свойствам.Вот безопасный способ объявить, что, не беспокоясь о утечках:
Заголовок:
@property(nonatomic, retain) NSMutableArray* prjMemberArray;
Реализация:
@synthesize prjMemberArray=_prjMemberArray;
- (void) viewDidLoad {
[super viewDidLoad];
NSMutableArray *prjMemberArray = [[NSMutableArray alloc] initWithObjects:@"someone", @"someone", @"someone" ,nil];
self.prjMemberArray = prjMemberArray;
[prjMemberArray release];
}
- (void) dealloc {
[_prjMemberArray release];
[super dealloc];
}
@ свойство создает методы получения и установкидля вашей переменной, но часто путают с самой переменной.Когда они выпустили XCode4, я полагаю, что они добавили возможность устанавливать, как вы хотите, чтобы переменная экземпляра была названа, выполнив:
@synthesize prjMemberArray=_prjMemberArray;
До XCode4 вы просто сделали:
@synthesize prjMemberArray;
Так что@property делает за кулисами нечто вроде этого:
-(NSMutableArray*) prjMemberArray {
return _prjMemberArray;
}
-(void) setPrjMemberArray:(NSMutableArray *) val {
if( _prjMemberArray != nil )
[prjMemberArray release];
_prjMemberArray = [val retain];
}
Так что не думайте о @property как о самой переменной и не забывайте всегда использовать self при обращении ких.Это должно избавить вас от боли и утечек памяти.