Проблема с потенциальной утечкой - PullRequest
0 голосов
/ 07 июля 2011

есть небольшая проблема с этим кодом:

 UITableViewCell *cell = (UITableViewCell *)[[button superview] superview];
 [button setBackgroundImage: [UIImage imageNamed:@"blueButton.png"] forState:UIControlStateNormal];

 VersionsPopover* content = [[[VersionsPopover alloc] initwithChapter:button.chapter]autorelease];
 UIPopoverController* aPopover = [[UIPopoverController alloc] initWithContentViewController:content];
 aPopover.delegate = self;
 aPopover.popoverContentSize = CGSizeMake(500,[self filesFromFolderWithChapter:button.chapter] *  60);

Это

VersionsPopover* content = [[[VersionsPopover alloc] initwithChapter:button.chapter]autorelease];

всегда дает мне потенциальные утечки.
С autorelease я получаю для aPopover «Объект высылается автоматически, слишком много раз».
Когда я использую [content release] Xcode сообщает мне, что мне не принадлежит этот объект.
Без релиза написано «потенциальная утечка».

Не знаю, что еще я мог бы попытаться решить это ...

Ответы [ 3 ]

1 голос
/ 07 июля 2011

Делай как это.

VersionsPopover* content = [[[VersionsPopover alloc] initwithChapter:button.chapter] retain];
UIPopoverController* aPopover = [[UIPopoverController alloc]
                                 initWithContentViewController:content];
aPopover.delegate = self;
aPopover.popoverContentSize = CGSizeMake(500,[self filesFromFolderWithChapter:button.chapter] *  60);
[content release];
0 голосов
/ 07 июля 2011

Код, который вы показали, не должен просачиваться или переиздавать (кроме утечки aPopover, но я предполагаю, что вы обрабатываете это в коде, не показанном здесь).далее в методах VersionsPopover init..., viewWill..., viewDid....

0 голосов
/ 07 июля 2011

Вы можете попробовать инициализировать объект content, не отправляя окончательное сообщение autorelease. Затем делайте с ним что хотите и, наконец, отправьте ему сообщение release, когда оно вам больше не нужно. Не должно быть никакой утечки.

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