gpt4 book ai didi

ios - 关闭返回值到外部 block ?

转载 作者:行者123 更新时间:2023-11-28 10:15:14 32 4
gpt4 key购买 nike

我希望我的静态函数返回一个 bool 这样的 static func search(email: String?) -> Bool

我尝试执行注释掉的部分,但它作为闭包的返回值返回。我如何让它返回值给外部调用函数 search(email: String?)

 static func search(email: String?){
HTTPClient().apiQuery(.GET, endpoint: "user.jsn", params: ["user":["email": email!]], handler: {
response in
print(response)
switch response.result {
case .Success(let successJSON):
let successResponse = successJSON as! Dictionary<String, AnyObject>
if let error = successResponse["errors"] {
print(error)
// return false
}
// else { return true }

case .Failure :
print("Failure")
// return false
}
})
}

最佳答案

您需要更改您的方法签名以返回具有您期望类型的完成处理程序,并且在 apiQoery 中只需在您有数据时调用它:

static func search(email: String?, completion: (Dictionary<String, AnyObject>) -> ()){
....
let successResponse = successJSON as! Dictionary<String, AnyObject>
completion(successResponse)
....
}

你可以这样调用它:

YOURCLASSNAME.search(email: nil) {
responce in
// Use your dictionary here
}

在您的情况下,当方法返回字典但它可能返回错误时,最好创建可以返回两者的对象,例如枚举结果,它非常流行。看这个link了解更多详情。

关于ios - 关闭返回值到外部 block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42269106/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com