Предпочитают загружать ресурсы в viewDidLoad, а не loadView.Вы должны удалить их в viewDidUnload, загрузка в viewDidLoad вернет их, если ваш view загрузится снова.
Можно утверждать, что вы также можете удалить их в didReceiveMemoryWarning, но AFAIK viewDidUnload следует использовать для освобождения элементов пользовательского интерфейса.Если вы используете didReceiveMemoryWarning, вы можете проверить, будет ли viewDidLoad вызываться снова, выпуская только если вызывается viewDidUnload:
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
if (![self isViewLoaded]) {
// release resources
}
}
Но если анимация является экземпляром var, и вы действительно делаете это
UIImageView *animation = [[UIImageView alloc]initWithFrame:CGRectMake(50, 0, 600, 300)];
Вы устанавливаете не переменную intance, а локальную.
Позже
Что касается задержки: загрузка 40 изображений требует своего времени, независимо от того, что вы делаете.Если вы не хотите задержки в пользовательском интерфейсе, загрузите их в фоновом режиме и уведомите пользовательский интерфейс, когда это будет сделано.В это время вы можете показать что-то, что привлекает внимание к задержке.