首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将@escaping闭包函数的结果保存到变量中?

如何将@escaping闭包函数的结果保存到变量中?
EN

Stack Overflow用户
提问于 2017-09-19 20:29:46
回答 1查看 298关注 0票数 0

我目前有一个类,如下所示:

代码语言:javascript
复制
class Anton {

    //URL to web service (Internal)
    let URL_DISPLAY_MENU = "http://192.168.1.100/api/DisplayMenu.php"

    func displayMenu(completion: @escaping ([[String:Any]]) ->()) {
        let requestURL = URL(string: URL_DISPLAY_MENU)
        var request = URLRequest(url: requestURL!)
        request.httpMethod = "POST"
        var menu: [[String:Any]]?


        let task = URLSession.shared.dataTask(with: request) { data,response,error in guard let data = data, error == nil else {
            print("error=\(String(describing: error))")
            return
            }
            do {
                if let httpStatus = response as? HTTPURLResponse, httpStatus.statusCode != 200 {
                    print("statusCode should be 200, but is \(httpStatus.statusCode)")
                    print("response = \(String(describing: response))")
                } else {
                    menu = try JSONSerialization.jsonObject(with: data, options: []) as? [[String: Any]] ?? []
                    var dictionary = [Int:Any]()
                    for (index,item) in menu!.enumerated() {
                        let uniqueID = index
                        dictionary[uniqueID] = item
                    }
                    completion(menu!)
                }
            } catch let error as NSError {
                print(error)
            }

        }
        task.resume()
    }
}

目前,我使用class & contained函数的方法如下:

代码语言:javascript
复制
var anton = Anton()

anton.displayMenu { menu in
            print(menu)
}

我想要做的是有一种方法将@escaping结果保存到一个全局变量中。我对转义闭包非常陌生,所以不知道该怎么做。

EN

回答 1

Stack Overflow用户

发布于 2017-09-19 20:42:28

您可以在完成时直接保存您的值。

示例:

代码语言:javascript
复制
var anton = Anton()

anton.displayMenu { menu in
    self.myMenu = menu
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46300517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档