Когда UIViewController viewDidUnload называют?

иначе должен создать table с valign, конечно. Это работало бы независимо от Вас знающий высоту отделения или нет.

<div>
   <table width="100%" height="100%" align="center" valign="center">
   <tr><td>
      <img src="foo.jpg" alt="foo" />
   </td></tr>
   </table>
</div>

, но необходимо всегда придерживаться всего css, когда это возможно.

45
задан mk12 4 January 2013 в 00:22
поделиться

3 ответа

Если вы выдадите предупреждение памяти в симуляторе (посмотрите в меню), это будет вызвано для любого контроллера представления, подключенного к невидимому представлению.

Это потому, что контроллеры представлений по умолчанию зарегистрированы для уведомлений о предупреждениях памяти, и любое представление, которое в настоящее время не используется, будет выгружено контроллером представления - там есть метод viewDidUnload, чтобы вы могли очистить все, что захотите,для экономии дополнительной памяти (или если вы сохранили некоторые IBOutlets, чтобы помочь освободить память, которая в противном случае была бы высвобождена выгружаемым представлением).

Как правило, любые IBOutlets, которые вы выпускаете в dealloc, также должны быть освобождены (и ссылки установлены на nil) в этом методе.

42
ответ дан 26 November 2019 в 21:03
поделиться

-viewDidUnload вызывается всякий раз, когда для свойства viewcontroller установлено значение nil, вручную или чаще всего через didReceiveMemoryWarning: .

17
ответ дан 26 November 2019 в 21:03
поделиться

В дополнение к ручному выдаче предупреждения памяти в симуляторе вы можете выдать его программно с помощью

- (void)_simulateLowMemoryWarning {
  // Send out MemoryWarningNotification
  [[NSNotificationCenter defaultCenter] postNotificationName:UIApplicationDidReceiveMemoryWarningNotification
                                                      object:[UIApplication sharedApplication]];
  // Manually call applicationDidReceiveMemoryWarning
  [[[UIApplication sharedApplication] delegate] applicationDidReceiveMemoryWarning:[UIApplication sharedApplication]];
}

Затем вы можете заставить это происходить каждые 5 секунд, используя таймер

static NSTimer *gLowMemoryTimer = nil;

- (void)stopLowMemoryTimer {
  [gLowMemoryTimer invalidate];
  gLowMemoryTimer = nil;
}

- (void)startLowMemoryTimer {
  if (gLowMemoryTimer) {
    [self _stopLowMemoryTimer];
  }
  gLowMemoryTimer = [NSTimer scheduledTimerWithTimeInterval:5.0 target:self selector:@selector(_simulateLowMemoryWarning) userInfo:nil repeats:YES];
}
37
ответ дан 26 November 2019 в 21:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: