IOS/swift :syntax to return custom object in closure

标签 ios swift closures

我想将一些异步获取的 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/

相关文章:

ios - 在 ViewController 循环中隐藏/显示 TabBar

objective-c - 如何从 Objective-C 类推送 Swift View Controller 并将数据传回并继续 Objective C 类中的下一个过程

ios - 应用渐变后获得透明的 UIButton

ios - swift、watchkit 中的引用接口(interface) Controller

c# - 将数据传递到 Task Continuation

ios - 在 iOS 中单击 UIButton 时,不止一个 UITextField 键盘关闭

objective-c - IOS:覆盖 NSMutableArray

ios - 删除项目 RxSwift MVVM 模式

javascript - 为什么不能在闭包的私有(private)函数中直接访问 this 的属性?

ios - 在 Objective-C 中以编程方式创建 UIView 并将其放入闭包中