无法在Swift函数中返回值

时间:2016-08-03 11:00:08

标签: ios swift alamofire

我正在尝试从函数返回JSON,为此我做了:

func getAllItems() -> JSON {
    Alamofire.request(.GET, Links.sharedInstance.getAllItems, encoding: .JSON).validate().responseJSON { (response) in
        do {
            let json = JSON(data: response.data!)

            return json
        }
    }
}

但它给了我下一个错误:

Unexpected non-void return value in void function

我该如何解决?我已尝试在func中使用局部变量,但在那种情况下我得到了nil。

任何提示?

1 个答案:

答案 0 :(得分:0)

你应该使用这样的完成处理程序:

func getAllItems(completion:(json: JSON?) -> (Void)) {
        Alamofire.request(.GET, Links.sharedInstance.getAllItems, encoding: .JSON).validate().responseJSON { (response) in
            do {
                let json = JSON(data: response.data!)

                completion(json)
            }
        }
    }