Проблемы с памятью относительно приложения - PullRequest
0 голосов
/ 08 декабря 2010

Мое приложение часто ломается ...: (

Я знаю, что совершал ошибки при освобождении представлений и объектов ... Я просто хочу знать, кроме освобождения памяти в последний раз, какМогу ли я управлять памятью между кодом ...

Кроме того, большинство моих viewcontroller'ов использует -(void)ViewDidLoad для создания представлений ... так что я тоже использую -(void)ViewDidUnload перед освобождением памяти ???

Если да, то, пожалуйста, подскажите мне, как его использовать ??

Также есть ли другой способ решения проблем с памятью ???: (

Ответы [ 2 ]

1 голос
/ 08 декабря 2010

Имейте в виду, что viewDidLoad можно вызывать несколько раз, это особенно верно в ситуациях с нехваткой памяти, когда представления могут автоматически выгружаться для экономии памяти.

В этом случае вы можете проверить, является ли ваш объектравен нулю перед его выделением или освобождает его в предупреждении памяти (в didReceiveMemoryWarning, если self.view.superview == nil, то все будет автоматически освобождено).

В какой-то момент вы также должны познакомиться с инструментами профилирования,или, по крайней мере, профилировщик утечек.В Xcode перейдите на Run -> Run With Performance Tool -> Leaks.Есть некоторые проблемы с этим инструментом, с которыми вы можете столкнуться, но как только вы схватитесь, вы будете удивляться, как вы жили без него (например, если в имени вашего хоста есть специальные символы, вам нужно его переименовать).

0 голосов
/ 08 декабря 2010

Если вы создали какой-либо объект в файле .h и разместили его только один раз, то вам следует освободить этот объект этим методом:

- (void) dealloc {[myObject release];[супер сделка];}

но если вы создали какой-либо объект локально (в .m) файле, отпустите его в том месте, где он больше не требуется.

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