didReceiveMemoryWarning не вызывается в активном приложении - PullRequest
2 голосов
/ 06 сентября 2011

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

Sep  6 13:37:35 unknown SpringBoard[29] <Warning>: Received memory warning. Level=1
Sep  6 13:37:35 unknown configd[25] <Notice>: jetsam: kernel memory event (90), free: 556, active: 3993, inactive: 1967, purgeable: 0, wired: 15073
Sep  6 13:37:35 unknown SpringBoard[29] <Warning>: Received memory warning. Level=2
Sep  6 13:37:35 unknown configd[25] <Notice>: jetsam: kernel memory event (95), free: 556, active: 1889, inactive: 944, purgeable: 0, wired: 15088

Это имеет смысл для меня, часть, которая не имеет смысла, состоит в том, что мой делегат приложения не получает сообщение applicationDidReceiveMemoryWarning, и мои контроллеры представления не получают didReceiveMemoryWarning.

Кто-нибудь видел это раньше или есть какие-либо предложения, чтобы помочь мне разобраться в проблеме. Это происходит, когда приложение видно, а не в фоновом режиме. Если это имеет какое-то значение, я работаю с iPad 1

Заранее спасибо!

1 Ответ

0 голосов
/ 08 сентября 2011

Я видел это при работе на устройстве iPad (хотя не на iPhone / iPod). Я все еще ищу альтернативы, но мое текущее решение состоит в том, чтобы просто вызвать предупреждение о нехватке памяти на устройстве на основе таймера (помещенного в моем делегате приложения в методе didFinishLaunchingWithOptions "):

// iPad doesn't seem to get the low memory warnings correctly - it just eventually crashes.  We're going to force them here every 20 seconds.
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
    [NSTimer scheduledTimerWithTimeInterval:20.0 target:[UIApplication sharedApplication] selector:@selector(_performMemoryWarning) userInfo:nil repeats:YES];

Это определенно имеет запах, и я не уверен, что Apple примет это. Тем не менее, похоже, теперь мой iPad работает правильно.

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