Почему происходит сбой приложения iPhone при получении предупреждения о памяти? - PullRequest
1 голос
/ 21 октября 2010

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

Я имеюПосмотрел журнал сбоев, и вот что я вижу:

0   libobjc.A.dylib                     0x000027da objc_msgSend + 18
1   UIKit                               0x0008cab4 -[UIViewController unloadViewForced:] + 132
2   UIKit                               0x0008ca22 -[UIViewController unloadViewIfReloadable] + 10
3   UIKit                               0x0008c9f2 -[UIViewController purgeMemoryForReason:] + 34
4   UIKit                               0x0008c896 -[UIViewController didReceiveMemoryWarning] + 10
5   My Application                      0x00023340 -[MailboxViewController didReceiveMemoryWarning] (MailboxViewController.m:359)
6   UIKit                               0x0008c880 -[UIViewController _didReceiveMemoryWarning:] + 8

Как вы можете видеть, мой контроллер вида MailboxViewController получает сообщение didReceiveMemoryWarning.Так как у этого представления нет памяти, которую он может действительно освободить, я просто звоню [super didReceiveMemoryWarning].

Странно, что я не вижу вызова моего контроллера вида viewDidUnload.Кажется, что происходит сбой с «EXC_BAD_ACCESS (SIGSEGV)», прежде чем он вообще туда попадет.

Что происходит и как я могу это исправить?

Ответы [ 2 ]

0 голосов
/ 22 октября 2010

Попробуйте отладку с включенными зомби - похоже, сообщение отправляется на освобожденный объект.

0 голосов
/ 21 октября 2010

Я полагаю, что он вышел из строя в тот момент, когда ваш контроллер выгружал свое представление, поэтому ваш viewDidUnload никогда не вызывается.Является ли ваш взгляд простым или сложным?Я предполагаю, что это может иметь какое-то отношение к вашему мнению.

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