在if语句中是否应该使用返回布尔值的函数?

时间:2018-01-27 20:46:21

标签: swift

如果我有一个函数调用返回true或false作为if语句的条件,我是否必须担心Swift分配我的代码以提高效率?

例如,

if (resourceIsAvailable()) { //execute code }

如果检查资源的计算成本很高,Xcode会等待或尝试继续使用代码吗?

这值得使用完成处理程序吗?

如果资源检查必须进行数据库调用怎么办?

1 个答案:

答案 0 :(得分:1)

好问题。

首先关闭...... 可以使用某个功能吗?绝对

第二......应该使用吗?

很多都取决于函数的实现。如果函数已知(写给它的人)要花很长时间才能完成,那么我希望那个人能够相应地处理它。

值得庆幸的是,很多iOS这样的东西都是从开发人员那里拿走的(大多数情况下)。 CoreData和Network请求通常带有完成处理程序。因此,使用它们的任何函数也需要是异步的并且具有完成处理程序。

这没有固定的规则。我最好的建议是......

  1. 如果你能看到该功能的实现,那就试着弄清楚它在做什么。
  2. 如果你不能再试一试。您甚至可以使用Xcode探查器中的时间分析器来确定完成所需的时间。
  3. 可能发生的最糟糕的事情是你发现它很慢,然后换掉其他东西。

相关问题