gpt4 book ai didi

ios - 使用单例模式在 Swift 中完成调用方法的语法

转载 作者:行者123 更新时间:2023-11-28 23:39:26 25 4
gpt4 key购买 nike

我试图通过共享实例调用位于单独类中的带有闭包的方法。当使用共享实例从另一个类调用时,用于从同一类中调用函数的语法不起作用。

这是实用程序类中的方法:

 func findNearbyLocations(completion: @escaping (MKMapItem?, Error?) -> ())  {
//get location
}

这可以从类内调用它:

self.findNearbyLocations(query:val1!) {
placemark, error in
guard let placemark = placemark, error == nil else {
return
}
}

当我尝试使用以下代码从另一个类调用它时,编译器给出错误:

Extra argument 'query' in call

Utilities.shared.findNearbyLocations(query:val1!) {
placemark, error in
guard let placemark = placemark, error == nil else {
return
}
}

我可以使用共享实例调用其他方法,没有任何问题。这是什么原因?

最佳答案

你当前的函数应该这样调用

Utilities.shared.findNearbyLocations { (placemark, error) in
guard let placemark = placemark, error == nil else {
return
}
}

如果需要发送参数,则将函数改为

func findNearbyLocations(query:QueryType,completion: @escaping (MKMapItem?, Error?) -> ())  { --- }

然后你就可以做到

Utilities.shared.findNearbyLocations(query:Your_Value) {  (placemark, error) in
guard let placemark = placemark, error == nil else {
return
}
}

关于ios - 使用单例模式在 Swift 中完成调用方法的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53900057/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com