我的应用程序在代码点下面崩溃了。只有在设备上,模拟器应用程序才能正常工作。
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对象,所以可以显示视图数据,并且可以将数据库填充作为后台进程完成。
任何猜测可能是什么原因。
答案 0 :(得分:1)
您是否在代码中查找了任何编译器警告?
如果该代码没有编译器警告,我会在代码中的不同位置再撒一些NSLog语句。然后在设备连接到运行Xcode的计算机时,在设备上运行应用程序。在应用程序运行时观察控制台输出。
此外,您可以在事后查看控制台输出 - 当设备连接时,只需打开管理器窗口并单击设备的“设备日志”。