Ios 代码结构和执行

Ios 代码结构和执行,ios,swift,Ios,Swift,我现在已经和Swift合作了6-8个月,我正在努力找到正确的方法来构造需要有序执行的代码。现在执行此操作时,代码将不会在为stepToRunSecond()设置变量的stepToRunFirst()中完成。理想情况下,我希望代码的结构如下: override func viewDidLoad() { stepToRunFirst() stepToRunSecond() } 相反,尽管我被迫这样执行: override func viewDidLoad() {

我现在已经和Swift合作了6-8个月,我正在努力找到正确的方法来构造需要有序执行的代码。现在执行此操作时,代码将不会在为
stepToRunSecond()设置变量的
stepToRunFirst()
中完成。理想情况下,我希望代码的结构如下:

override func viewDidLoad() {

     stepToRunFirst()

     stepToRunSecond()
}
相反,尽管我被迫这样执行:

override func viewDidLoad() {

     stepToRunFirst()
}

func stepToRunFirst()

     //do whatever

     stepToRunSecond()
}

我觉得这样会使代码更难阅读和维护。这是构造它的正确方法,还是有更好的方法?

在第一个版本中,两个函数都是按顺序调用的。为什么你认为“代码未完成…设置变量”?这感觉像是
stepToRunFirst
中的某些东西是异步的,而且(显然)在返回并调用
stepToRunSecond
之后才会发生。我同意Steve Wilford的观点。此外,这是一种很好的代码结构方式,尽管您可以将其重命名为beginSteps或类似的名称,以便更明显地看到正在运行更多的步骤。如果您正在进行异步操作,那么您需要这样做。@SteveWilford:但这不能解释为什么第二个版本(其中
stepToRunSecond()
stepToRunFirst()
返回之前调用)按预期工作。@SteveWilford:只有在stepToRunSecond()时才会有区别在stepToRunFirst中的某个完成处理程序中调用,而不是作为最后一条语句调用。如果这两种变体确实如问题所示,则没有区别。