一尘不染

在启动第二个功能之前,如何等待功能在iOS / Swift上结束

swift

我基本上必须使用在我的viewDidLoad中调用的方法。第一个获取用户的搜索首选项,并将首选项保存到顶部的变量中。之后,我想在第二个函数中访问并使用这些变量。但是现在,当我想在第二个函数中访问变量时,变量始终为零。

我该如何调整我的viewDidLoad,以便第二个功能仅执行一次并且我的数据请求已成功执行?

var searchLocation = String()
var searchLocationCoordinates = [String:Double]()
var searchRange = Int()


override func viewDidLoad() {
    super.viewDidLoad()

    // Gets the user's search preference
    getTheSearchLocationAndRange()

    // Loads the data from the database
    loadDataFromDatabase()
}

到目前为止,我已经阅读了有关dispatch_asynch或完成处理程序的内容。也许有人可以发布一些我可以在viewDidLoad中使用的代码并使它正常工作?


阅读 192

收藏
2020-07-07

共1个答案

一尘不染

好吧,我找到了解决方案。我基本上在第一个函数的末尾调用了该函数。

所以基本上:

    var searchLocation = String()
    var searchLocationCoordinates = [String:Double]()
    var searchRange = Int()


    override func viewDidLoad() {
        super.viewDidLoad()

        // Gets the user's search preference
        getTheSearchLocationAndRange()
    }

    func getTheSearchLocationAndRange() {
    // Code for getTheSearchLocationAndRange()

    loadDataFromDatabase()
    }

    func loadDataFromDatabase(){
    // Code for loadDataFromDatabase()
    }
2020-07-07