Sie sollten es zu ...
ändern %Vor% ... Sie sollten dispatch_release
aufrufen, wenn Sie keinen Zugriff mehr auf die Warteschlange benötigen. Und da myQueue
eine lokale Variable ist, muss dort aufgerufen werden.
Lesen Sie die Dokumentation dispatch_queue_create:
Diskussion
Blöcke, die an die Warteschlange übergeben werden, werden nacheinander in FIFO-Reihenfolge ausgeführt. Beachten Sie jedoch, dass Blöcke, die an unabhängige Warteschlangen übergeben werden, gleichzeitig ausgeführt werden können.
Wenn Ihre Anwendung die Dispatch-Warteschlange nicht mehr benötigt, sollte sie mit der Funktion dispatch_release freigegeben werden. Alle ausstehenden Blöcke, die an eine Warteschlange gesendet werden, enthalten einen Verweis auf diese Warteschlange, sodass die Zuweisung der Warteschlange erst aufgehoben wird, wenn alle ausstehenden Blöcke abgeschlossen wurden.
Das Leak-Tool meldet, wo Speicher zugewiesen wird, der keine Referenzen mehr von Ihrem Code enthält.
Nachdem diese Methode ausgeführt wurde, da es keinen Verweis auf die von Ihnen erstellte Warteschlange gibt und dispatch_lease () nie aufgerufen wurde, wird sie als Leck betrachtet.
Tags und Links objective-c iphone grand-central-dispatch