我想用dispatchqueue执行代码。但前提是某个条件为真。到目前为止我正在这样做,但必须有一种不那么难看的方法。
if !sync {
return self.tasksInQueue[userID]
}
return SYNC_QUEUE.sync {
return self.tasksInQueue[userID]
}
最佳答案
我不确定它是否更干净......但你可以定义一个变量来定义要执行的常见工作......
let task = { self.tasksInQueue[userID] }
if sync {
return SYNC_QUEUE.sync { task() }
} else {
return task()
}
如果这种类型的 if 发生在很多地方,理论上您可以创建一些通用函数来为您进行检查..
func optionalSync <T> (_ sync: Bool, task: () -> T) {
if sync {
return SYNC_QUEUE.sync { task() }
} else {
return task()
}
}
然后每当您需要执行操作时...
optionalSync(sync) { self.tasksInQueue[userID] }
关于ios - 在 Swift 中根据条件使用调度队列的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51416398/