Я цель c новичком, и у меня возникли некоторые проблемы с управлением памятью, я прочитал политику управления памятью Apple, однако мне нужно немного прояснить здесь, это довольно просто, я думаю, но я хотел бы спросить вас, прав ли я:
Учитывая данное свойство:
@interface Test : NSObject {
NSArray *property1;
}
@property (nonatomic,retain) NSArray* property1;
@end
...
//And its implementation:
@implementation Test
@synthetize property1;
-(id) init {
if (self=[super init]) {
self.property1=[[[NSArray alloc] initWithCapacity:5] autorelease];
}
return self;
}
-(void) dealloc {
[super dealloc];
[property1 release];
}
@ конец
Правильно ли выдать сообщение Autorelease для выделенного объекта в методе init? Я делаю это в документе Apple, говорит, что каждый выделенный объект должен быть освобожден разработчиком, тогда, я думаю, наборы alloc сохраняют счет к 1, то свойство (неатомное, сохраняемое) добавляет 1, поэтому сохраняйте == 2, затем автоматически высвобождает 1, а когда вызывается метод dealloc, свойство property1 освобождается и сохраняется число == 0, я прав?