Я не уверен, связано ли это или нет, но однажды я столкнулся с подобной проблемой. IPhone вызывает предупреждение памяти, потому что ему не хватило оперативной памяти. Таким образом, время от времени iPhone сбрасывает кешированную память, что может привести к тому, что некоторые виды или объекты будут освобождены / освобождены неосознанно по вашему усмотрению. Симулятор iPhone никогда не вызовет предупреждение о памяти, но на реальной машине это то, что происходит.
Я не уверен, так ли это, но, пожалуйста, попробуйте сделать это: на симуляторе iPhone есть опция «Имитация предупреждения о памяти». Попробуйте поиграть с вашим приложением на симуляторе и иногда пытаться "симулировать предупреждение памяти". В случае сбоя мы можем сделать вывод, что это так.
Сначала проверьте, так ли это.
В качестве альтернативы, если вы хотите проверить, когда реальный iPhone вызывает «предупреждение о памяти», попробуйте добавить NSLog или printf следующим способом:
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}