在Swift条件下使用dispatchqueue的最佳方法

时间:2018-07-19 07:08:10

标签: ios iphone swift

我想用dispatchqueue执行代码。但是只有在特定条件为真的情况下。到目前为止,我一直在这样做,但是必须有一个不太丑陋的方法。

if !sync {
    return self.tasksInQueue[userID]
}
return SYNC_QUEUE.sync {
    return self.tasksInQueue[userID]
}

1 个答案:

答案 0 :(得分:0)

我不确定它是否更干净..但是您可以定义一个变量来定义要执行的常规工作...

<?php 
echo "<html>$var</html>"

// OR if one quote
echo '<html>'.$var.'</html>';
?>

如果这种类型的if发生在很多地方,那么从理论上讲,您可以创建一些通用函数来为您做检查。

let task = { self.tasksInQueue[userID] }
if sync { 
   return SYNC_QUEUE.sync { task() }
} else { 
   return task()
}

然后每当您需要进行手术时...

func optionalSync <T> (_ sync: Bool, task: () -> T) {
    if sync { 
       return SYNC_QUEUE.sync { task() }
    } else { 
       return task()
    }
}