Управление памятью / вопрос владения? - PullRequest
1 голос
/ 15 марта 2010

Имею ли я это право ...

// Reactor.h
@property(nonatomic, retain) NSMutableArray *reactorCore;

// Reactor.m
[self setReactorCore:[NSKeyedUnarchiver unarchiveObjectWithFile:[self dataFilePath]]];
...

-(void)dealloc {
    [reactorCore release];
    [super dealloc];
}

Я почти уверен, что все делаю правильно (но просто хотел проверить). По моему мнению, NSKeyedUnarchiver возвращает принадлежащий ему объект, затем я беру на себя владение через @property, позже я освобождаю реакторное ядро, и все хорошо?

Ответы [ 2 ]

3 голосов
/ 15 марта 2010

Это верно. Метод NSKeyedUnarchiver - поскольку он не содержит слов copy, new или чего-либо подобного - возвращает автоматически освобожденный объект, который вам нужно сохранить (как вы делаете), чтобы сохранить право собственности на него.

3 голосов
/ 15 марта 2010

Я считаю, что ваш код является основным. В случае сомнений вы можете использовать Build and Analize в XCode для проверки возможных утечек.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...