По моему .h file
у меня есть:
NSMutableArray *myArray;
@property (nonatomic, retain) NSMutableArray *myArray;
Мой .m file
выглядит в основном так:
@synthesize myArray;
- (id) init {
self = [super init];
if (self != nil)
{
self.myArray = .... ? // here I want to create an empty array
}
return self;
}
- (void) dealloc {
[self.myArray release];
[super dealloc];
}
В чем я не уверен, так это в init
.
1)
self.myArray = [[NSMutableArray alloc] init];
2)
NSMutableArray *tmp = [[NSMutableArray alloc] init];
self.myArray = tmp;
[tmp release];
Решение 1 мне не кажется правильным, из-за моей настройки @property (retain)
я автоматически увеличиваю счетчик сохранения при настройке self.myArray, но дополнительно у меня уже есть «+1 сохранение» из-за [NSMutableArray alloc]
и затем заканчивается счет 2 для этого объекта, но только один раз в dealloc
. Таким образом, второе решение кажется мне более правильным, хотя оно и громоздко.
Также мне интересно, действительно ли self.myArray = ...
совпадает с [self setMyArray:...]
и, таким образом, увеличивает количество сохраняемых данных.
UPDATE
Я действительно нашел ответы (и даже более подробную информацию) здесь на случай, если кто-то захочет больше читать.