내 응용 프로그램이 아래의 코드 포인트에서 충돌합니다. 그건 단지 장치에, 시뮬레이터 응용 프로그램을 통해 잘 작동합니다. iOS 기기에서만 dispatch_async가 작동하지 않는 이유는 무엇입니까?
- 얻기 데이터 웹 서비스로부터 JSON 응답에서 : 여기
은 앱이 메소드 실행을위한 흐름이고 개체가 생성되면 해당 데이터를 로컬 db에도 동기화해야합니다. 따라서dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0) , ^(void) { // do some time consuming things here // perform task here which required to be run on separate thread/queue CPPClass& ptr = CPPClass::GetInstance(); ptr.SyncTrackingData([newObject primaryID]); dispatch_async(dispatch_get_main_queue(), ^{ // after completion of those thread tasks // do some things here in the main queue // for example: update UI controls, etc. NSLog(@" Synchronization Done "); }); });
SyncTrackingData
메서드를 호출하여 해당 시나리오를 처리합니다.SyncTrackingData
방법에 관한
:이 방법은 CPP 클래스 파일에서 사용할 수 있습니다, 그것은 저기 새 스레드를 생성하고 스레드를 사용하고, 응용 프로그램 데이터 (문서 디렉토리에서) 로컬 데이터베이스 파일에 저장되어지고있다.
우리는이 메소드에 별도의 스레드를 사용하고 있습니다. 이미 Model 객체가 있기 때문에 뷰 데이터를 표시하고 데이터베이스 채우기를 백그라운드 프로세스로 수행 할 수 있기 때문입니다.
어떤 이유 일 수 있습니다.
충돌이 어떻게 생깁니 까? 스택 추적이 있습니까? –
아니요, 기기에서만 발생합니다. 그러므로 나는 갖고 있지 않습니다. – Mrunal
기기에서 충돌 보고서를받을 수 있으며 많은 도움이됩니다. –