инструменты: утечка памяти при создании UIButton - PullRequest
3 голосов
/ 09 января 2011

Я пытаюсь выяснить, почему при создании UIButton в конструкторе интерфейсов происходит утечка памяти при запуске приложения инструментов с помощью xcode.

Так я создал утечку памяти.

Я открыл новое приложение, открыл файл myAppViewController.xib в конструкторе интерфейсов. Я изменил фон на черный. Добавлен UIButton, переименован в заголовок "foo". сохраните и выйдите.

В файле myAppViewController.h у меня есть следующее

#import <UIKit/UIKit.h>

@interface miPlanNewViewController : UIViewController { 
    IBOutlet UIButton *tasksProjects; 
}
@property(nonatomic, retain) IBOutlet UIButton *tasksProjects;
@end

в файле myAppViewController.m у меня есть следующее:

#import "miPlanNewViewController.h"

@implementation miPlanNewViewController
@synthesize tasksProjects;

...
//the normal methods you get
...
- (void)dealloc {
    [super dealloc];
}
@end

Вот скриншот того, что я сейчас получаю в инструментах.

alt text alt text

Однако я заметил одну вещь ...

Я еще не подключил Розетку к uibutton в конструкторе интерфейсов, НО, когда я удаляю UIButton из конструктора интерфейсов, сохраняю, а затем снова запускаю программу с инструментами, я вообще не получаю утечек. 1021 *

Может кто-нибудь объяснить, что происходит и как я могу решить эту проблему. Спасибо.

1 Ответ

2 голосов
/ 09 января 2011
  • Во-первых, вы не освобождаете собственность. в Deloloc вы должны иметь [tasksProjects release]; и в viewDidUnload вы должны иметь self.taskProjects = nil;
  • Во-вторых, как уже упоминалось, вы не должны использовать симулятор для проверки утечки памяти.
  • В-третьих, убедитесь, что вы собираете релиз, а не отладку.
...