我有一个类来存储用户地理信息&获取位置等。此类对象用于我的Home ViewController。
示例:
class Geo {
...
getLocation()
getRoute()
...
}
class ViewController {
var geo = Geo()
geo.getRoute()
// I want a call a function after getRoute is complete.
}
我知道的一种方法是使用委托 ,其中我的ViewController是Geo类对象的委托。但有没有直接&简单的方法,导致任何Geo对象的方法将被app中的任何控制器使用。
答案 0 :(得分:3)
正如评论中所建议的那样,您可以将函数传递给getRoute
,以便在完成时调用。您必须将getRoute
的声明更改为
func getRoute(_ completionHandler: (() -> Void)?) {...}
然后在getRoute
实施电话的结尾处:
if let completion = completionHandler {
completion()
}
当你调用getRoute
时,你只需要传递你想要被调用的函数作为最后一个参数:
geo.getRoute() {
// do something when getRoute is finished
}