【发布时间】:2016-08-03 11:00:07
【问题描述】:
我正在尝试从函数中返回 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。
有什么建议吗?
【问题讨论】:
-
您在响应区使用return 语句,而不是在您的功能区。在你的函数中声明一个 var 为 var ret : JSON!将“return json”替换为“ret = json”,然后在响应区域外替换“return re”
-
@LucaNicoletti 不,你不能从关闭中返回。 OP 应该使用回调。
-
@EricD 我没有说要从闭包返回,我告诉他给闭包中的 var 赋值,然后返回,但是如果响应不够快,你紧张,最好用回调
-
看看最热门的 [alamofire] 问题。这已被反复询问和回答。 Alamofire 自述文件明确提到了异步响应处理。