Вам лучше избегать использования @syncronized
внутри dispatch_async
, как это предлагается в комментариях.Если звонить по номеру [self logInfo:...]
небезопасно, вы можете:
- Использовать группу рассылки, чтобы убедиться, что несколько вызовов
dispatch_async()
ресурса не приводят к сбою приложения.У Майка Эша есть хорошее описание этой техники .Посмотрите его примеры. - Используйте семафор отправки, чтобы заставить отдельные вызовы ждать завершения друг друга.Для получения дополнительной информации см. Справочную страницу.
Я не уверен, что logInfo делает в этом контексте, поэтому вы также можете переписать это.