Я просматривал файл отладки, который мое приложение создает во время работы, и увидел странное поведение: приложение использует NSURLConnction
для получения некоторых данных с сервера. Соединение было запущено, а затем пользователь перевел приложение в фоновый режим, вероятно, нажав кнопку «Домой» (вызывались методы application:willResignActive
и application:didEnterBackground
). Я мог видеть, что соединение было обработано в моем коде после вызова application:didEnterBackground
. (Делегат connectionDidFinishLoading
из NSURLConnection
был вызван после application:didEnterBackground
). В реализации connectionDidFinishLoading
я выполняю какие-то операции, но в этот момент приложение, вероятно, было приостановлено и код не вызывался. Затем, спустя почти 12 часов, пользователь снова запустил приложение (оно не было завершено, а только было в фоновом режиме), и код продолжил работу с того же места, где остановился, даже до того, как были вызваны application:willEnterForeground
и application:didBecomeActive
). Он делает сцены? Часть кода, запущенная до того, как приложение вышло на передний план, изменило внутреннее состояние моего приложения и вызвало странное поведение.
Любые идеи, как это решить?