我想将一些异步获取的 JSON 放在一个对象中并在闭包中返回。然而,我的代码出错了。
func postToWebSwervice (aString:String,completion:@escaping (_ response:Array<Any>)->(MyObject)){
//get some JSON from web
let myObject = MyObject()
//parse JSON
myObject.title = "Palo Alto"
myObject.temp = 62
DispatchQueue.main.async {//open async
completion( myObject )
}
}
我收到一个错误:'无法将 myObject 类型的对象转换为闭包结果类型 Void(又名 ())
我想你不能“返回”对象。但是正确的语法应该是什么才能在完成后调用方法?
感谢您的任何建议。
最佳答案
替换Array<Any>
与 MyObject
(你需要像 thi 一样改变你的完成 block 语法)
func postToWebSwervice (aString:String,completion:@escaping (_ response: MyObject)-> Void){
//get some JSON from web
let myObject = MyObject()
//parse JSON
myObject.title = "Palo Alto"
myObject.temp = 62
DispatchQueue.main.async {//open async
completion( myObject )
}
}
关于IOS/swift :syntax to return custom object in closure,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52733447/