Есть хорошая вероятность, что вы не всегда можете повторить это из-за времени.Вы сказали, что экраны заполняются внешним запросом API.Вы задаете подробный вид в качестве делегата для запроса API, чтобы он получал уведомление, когда запрос API завершен и данные готовы?
Я предлагаю вам воспроизвести ошибку, очень быстро перейдя изот представления списка к представлению сведений, но прежде чем представление сведений сможет загрузить свои данные, вернитесь к представлению списка.Если представление сведений является делегатом для запроса API, приложение будет аварийно завершено, поскольку делегат для запроса API был освобожден до того, как он сможет вызвать любое указанное вами сообщение делегата.Если вы дадите время просмотра подробных данных для загрузки данных, вы не столкнетесь с этим сбоем.
У меня есть похожая ошибка в приложении, над которым я работаю, и в настоящее время я ее избегаю с небольшимхак - в подробном представлении dealloc:
-(void)dealloc
{
[super dealloc];
self = nil;
}
Если у кого-нибудь есть более умный способ убедиться, что для освобождаемого представления установлено значение nil
, я приветствую их предложение.