这种情况很少发生。以下是堆栈跟踪的最后一行:
0 libdispatch.dylib 0x0000000197a85a9c dispatch_group_leave + 48
使用 dispatch_group_leave 的方式是在一个完成闭包中调用它,就像这样:
dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),
{ () -> Void in
let query = HKStatisticsCollectionQuery(quantityType: quantityType,
quantitySamplePredicate: nil,
options: statisticOptions,
anchorDate: anchorDate,
intervalComponents: interval)
query.initialResultsHandler = {
complete()
因此,我们将其分派到后台线程,运行HKStatisticsCollectionQuery,然后调用名为complete的函数参数闭包。在complete内部调用dispatch_group_leave并导致崩溃。
非常感谢任何想法! 谢谢!