Questo accade molto raramente. Ecco l'ultima riga della traccia dello stack:dispatch_group_leave crash in swift
0 libdispatch.dylib 0x0000000197a85a9c dispatch_group_leave + 48
dispatch_group_leave viene chiamato in una chiusura completa che viene richiamato in questo modo:
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()
Così abbiamo spedizione verso un thread in background, eseguire un HKStatisticsCollectionQuery, e quindi chiama una chiusura del parametro funzione chiamata completa. Inside complete è dove viene chiamato il dispatch_group_leave e si verifica l'arresto anomalo.
Tutte le idee sono più apprezzate! Grazie!
Interessante. Ho un accesso prima che venga chiamata la prima chiusura. hmmm. – jestro
Penso che sia stato questo. Alcune foglie venivano chiamate troppo velocemente. Spostato tutte le entrate e la notifica a prima che le foglie possano essere chiamate. Grazie! – jestro
@mustafa c'è un modo per evitare il caso di chiamare dispatch_group_leave più del dovuto? Ad esempio, per casi che non posso dire con certezza che il blocco di completamento - di cui è chiamato il dispatch_group_leave - non verrà chiamato più di una volta? – ofer2980