我基本上必须使用在viewDidLoad中调用的方法。第一个获取用户的搜索首选项并将首选项保存到顶部的变量。之后,我想在第二个函数中访问和使用这些变量。但是现在当我想在第二个函数中访问它们时,变量总是为零。如何等待函数在iOS/Swift上结束,然后再启动第二个函数
如何调整我的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中使用,并使其工作?
你不说的话,但getThSearchLocationAndRange必须是异步的?在这种情况下,您不应该等待,这会让您的GUI挂起。相反,您可以使第一个函数以完成块作为参数,并将第二个函数作为块体执行,另一种方法是执行块体。 – Gruntcakes
好吧,是啊!你有一些示例代码给我看?但这也是我在完成处理程序中看到的其他帖子中的一个想法! – Mattk90
getTheSearchLocationAndRange中是否有调度函数? – FredericP