ios - 字典不可转换为 Void

标签 ios swift alamofire

大家好,我一直在网上搜索,但运气不佳,但我正在尝试绕过 Alamofire 的异步特性。我正在尝试将 JSON 响应作为字典返回,但 Xcode 提示我“字典无法转换为‘Void’”

func homePageDetails(userName:String) -> (Dictionary<String,AnyObject>){
    let username = userName
    let hompePageDetails = Alamofire.request(.GET, "http://example.com/API/Bunch/GetHomePageDetails/\(username)/").responseJSON{(request, response, JSON, error) in
    print(JSON)
    var test = JSON as Dictionary<String,AnyObject>
    return test
    }
}

如有任何帮助,我们将不胜感激。

最佳答案

您正在返回 test: Dictionary<String,AnyObject>来自关闭而不是来自 homePageDetails方法。闭包返回类型是 Void ,这就是您收到此错误的原因。

我自己没有用过 Alamofire,但是 Alamofire.request似乎是非阻塞调用。如果是这样,您将无法从此函数返回。您可以使用完成关闭之类的东西。未经测试的概念:

func homePageDetails(userName:String, completion:(Dictionary<String,AnyObject>) -> Void) {
    let username = userName
    let hompePageDetails = Alamofire.request(.GET, "http://example.com/API/Bunch/GetHomePageDetails/\(username)/").responseJSON{(request, response, JSON, error) in
        print(JSON)
        var test = JSON as Dictionary<String,AnyObject>
        completion(test)
    }
}

关于ios - 字典不可转换为 Void,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26118556/

相关文章:

ios - Alamofire 5 : Value of type 'Result<Data, AFError>' has no member 'value'

ios - Alamofire:如何在多部分表单数据中附加一个 json 数组参数?

objective-c - 通过 Flurry Analytics 追踪崩溃

iOS:UIScrollView 水平滚动 2 个图像

ios - 如何将 UIImageView 设置为手机壁纸

iOS:在所有屏幕上显示相同质量的图像

ios - 从扩展中获取主应用程序包

ios - 如何使用 map 在 Swift 中改变结构?

应用暂停时的 iOS 通知

ios - 将 SwiftyJSON 对象分配给字符串数组