2014-10-02 3 views
0

내 앱이로드 될 때마다 웹 서비스가 호출되어 앱에서 다운로드 할 수있는 업데이트가 있는지 확인합니다. 다운로드 한 경우 다운로드하십시오.GCD sendSynchronousRequest applicationDidEnterBackground

그랜드 센트럴 디스패치를 ​​사용하여 다른 스레드에서 업데이트를 동기식으로 다운로드하므로 메인 스레드에 로딩 아이콘을 표시 할 수 있습니다. 앱을 계속 업데이트하기 전에 동기화가 필요합니다.

그러나 다운로드하는 데 시간이 오래 걸리고 화면이 잠자기 상태가되어 효과적으로 applicationDidEnterBackground를 호출하면 문제가 발생합니다. 사용자가 화면을 다시 켜고 앱을 다시 시작하면 다음 오류가 발생합니다.

EXE_BAD_INSTRUCTION (code=EXC_1386_INVOP, subcode=0x0) 

이 문제를 해결하는 가장 좋은 방법은 무엇입니까? 다운로드를 일시 중지하고 앱이 다시 시작될 때 다시 시작하거나 백그라운드 작업을 만들고 다운로드를 계속 하시겠습니까? 내가 가장 좋은 방법인지 모르겠습니다.

답변

0

당신의 앱이 백그라운드 권한 (오디오, GPS, 외부 장치 등)을 가지고 있지 않는 한 가장 안전한 대답은 -applicationDidEnterBackground이 호출 될 때 모든 네트워크 다운로드를 일시 중지/중지하고 앱 돌아오다.

관련 문제