我基本上必须使用在我的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中使用的代码并使它正常工作?
好吧,我找到了解决方案。我基本上在第一个函数的末尾调用了该函数。
所以基本上:
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() }