Кажется, я нахожу проблему.У меня есть контроллер представления с именем "VCGameRule", под MainView.И он имеет объявление в файле VCGameRule.h следующим образом:
@property (nonatomic, retain) IBOutlet UILabel *lblInitialCash;
В VCGameRule.m в функции инициализации есть следующий код:
lblInitialCash = [[UILabel alloc] initWithFrame:CGRectMake(135, 12, 50, 20)];
И егоФункция viewDidUnload выглядит следующим образом:
- (void)viewDidUnload {
[super viewDidUnload];
// Release any retained subviews of the main view.
self.lblInitialCash = nil;
}
Видите проблему?Я пытаюсь назначить новый выделенный объект UILabel для lblInitialCash, который является сохраненным свойством IBOutlet.И я пытаюсь освободить свойство в функции viewDidUnload, затем происходит что-то плохое ...
Я до сих пор не уверен, что именно это происходит.Но я думаю, что должна быть выделена оригинальная память о хаосе.Поэтому я получаю сообщение об ошибке «EXC_BAD_ACCESS», когда приложение пытается вызвать didReceiveMemoryWarning в каждом загруженном контроллере представления.
После того, как я изменил свойство IBOutlet на обычные переменные класса, ошибка, похоже, больше не возникает!И теперь все хорошо, даже мое приложение действительно использует много памяти и много раз выполняет функцию viewDidUnload, приложение все еще живо.\ (^ О ^) /