Когда освобождать переменные экземпляра в цели c - PullRequest
0 голосов
/ 28 января 2011

У меня есть фрагмент кода, который выглядит так:

-(void) getAccounts {
        accounts = [[NSMutableArray alloc] init];
        selAccounts=[[NSMutableArray alloc] init];
        NSString *url=[NSString stringWithFormat:@"https://host/accts"];
        processor=[[AsynConnectionProcessorController alloc] init];
        processor.delegate=self;
        processor.server=self.server;
        [processor createRequestfromURL:url];
}

Это представление (список учетных записей) вызывается, когда я выбираю просмотр учетных записей, а также когда я возвращаюсь к списку учетных записей из представления сведений об учетной записи, к которому я иду, выбирая учетную запись на странице списка учетных записей. Каждый раз, когда я возвращаюсь на страницу списка учетных записей со страницы сведений об учетной записи, я вижу утечку памяти в «Инструментах». accounts и selAccounts - переменные экземпляра, которые я выпускаю в dealloc. Мой вопрос заключается в том, нужно ли мне их освобождать где-либо еще. Может быть, в функции getAccounts выше, если так, как мне это сделать.

Заранее спасибо за любую помощь

Ответы [ 2 ]

2 голосов
/ 28 января 2011

Когда освобождать переменные экземпляра в цели c?

Когда вы владеете ресурсами, вам нужно освободить их.Теперь, когда у вас есть ресурсы -

  • Вы владеете ими, если выделяете их.
  • Вы владеете ими, если копируете их.
  • Вы владеете ими, если вы новичокЭто.(эквивалентно alloc / init)

В вашей программе вам необходимо release accounts, selAccounts, processor.

0 голосов
/ 28 января 2011

Возможно, потому что вы никогда не вызывали release для своего объекта в своем коде. Dealloc вызывается только когда вы вызываете release для вашего объекта

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