У меня функция проверяет наличие сущностей определенного типа в бд. Она должна возвращать Bool.
func checkEntityListExists<EntityType>(type: EntityType) -> Bool {
let entityName = String(describing: type)
concurrentQueue.async {
let fetchRequest = NSFetchRequest<NSFetchRequestResult>()
let entityDescription = NSEntityDescription.entity(forEntityName: entityName, in: self.context)
fetchRequest.entity = entityDescription
let result = try self.context.fetch(fetchRequest)
return result.isEmpty
}
}
Возникает ошибка:
Invalid conversion from throwing function of type '() throws -> Void' to non-throwing function type '@convention(block) () -> Void'
Я не хочу использовать callback, потому что в зависимости от true/false придется вызывать функцию, которая тоже имеет completion closure.
Есть способ вернуть значение из dispatch_async?
private let concurrentQueue = DispatchQueue(label: "concurrentQueue", qos: .background, attributes: .concurrent, autoreleaseFrequency: .inherit, target: nil)