2010-04-28 5 views
1

Я работаю над проектом iPhone, где мы создали программный код программного кода. Теперь я собираюсь начать новый проект iPhone и подумать об использовании Interface Builder вместо этого, потому что мне было рекомендовано как очень полезный инструмент, создавая меньше головной боли, чем писать все в коде и вообще намного быстрее (относительно времени разработки).iPhone: Интерфейс Builder утечки памяти?

Однако у моих членов команды есть некоторые проблемы из-за предыдущих проблем с использованием Interface Builder и, в результате, утечки памяти. Поэтому они предлагают снова создать все в коде. Я не знаю, откуда берутся эти проблемы, но, возможно, кто-то с большим опытом, чем мы, может дать некоторое представление по этой теме.

Выполнение простого Google search на самом деле не предоставляет никакой информации, подтверждающей наличие каких-либо проблем с утечками памяти, созданных самим Interface Builder.

Глядя на official documentation от Apple, я вижу только эти три вещи, которые я должен заботиться о:

@property (nonatomic, retain) IBOutlet UIUserInterfaceElementClass *anOutlet; 

«Вы должны затем либо синтезировать соответствующие методы доступа, или осуществлять их в соответствии с декларация и (в iPhone OS) выпустить соответствующую переменную в dealloc. "

- (void)viewDidUnload { 
    self.anOutlet = nil; 
    [super viewDidUnload]; 
} 

Все, что я пропустил?

ответ

4

Когда вы назначаете IBOutlet через Interface Builder, этот объект сохраняется контроллером по умолчанию (даже без явной установки свойства с сохранением). Поэтому вам нужно либо выпустить все розетки, либо установить свойство с назначением.

Это информация, которая получает большинство людей и ведет к наиболее распространенным утечкам памяти. Особенно на представлениях, которые неоднократно показываются и удаляются.

+0

Thanks Mark. Это то, что я нашел в официальной документации Apple (см. Мой отредактированный вопрос выше). У вас был плохой опыт в отношении утечек памяти, созданных самим Interface Builder. Значит, что-то с инструментом неправильно, а не с моим кодом? – znq

+0

Я ничего не видел с самим инструментом, нет. Каждая утечка памяти, с которой я столкнулась, была связана с моей собственной ошибкой. – MarkPowell

Смежные вопросы