Метод синхронный DispatchQueue
func sync<T>(execute work: () throws -> T) rethrows -> T
возвращает результат рабочего элемента вызывающей стороне, что означает, что вы можете назначить его как значение инициализации для логической константы:
let isEmpty = dispatchQueue.sync {
return self.myProtectedArray.isEmpty
}
print(isEmpty) // Compiler happy!
Как сказал @Rob, self.
не требуется, поскольку замыкание не является экранирующим, а ключевое слово return
может быть опущено в случае одного -выражение закрытия:
let isEmpty = dispatchQueue.sync {
myProtectedArray.isEmpty
}