【发布时间】:2018-11-17 17:28:14
【问题描述】:
我正在尝试使用 flickr API 获取数据,我使用 Alamofire 和 swiftyJSON 编写了一个简单的代码来从 flickr 获取这些数据,但是我能够打印数据大小但是当我尝试打印 json 时,我的 catch块运行。我的代码如下所示
func getPhotos(completion: @escaping CompletionHandler) -> Void {
let parameter: [String: Any] = [
"method": PHOTOS_METHOD,
"api_key": FLICKR_API_KEY,
"per_page": PER_PAGE,
"page": PAGE,
"format": FORMAT_TYPE,
"nojsoncallback": JSON_CALLBACK]
Alamofire.request(FLICKR_URL, method: .get, parameters: parameter, encoding: JSONEncoding.default, headers: HEADER).responseString { (response) in
if response.result.error == nil {
guard let data = response.data else {return}
do {
if let json = try JSON(data: data).array {
print(json)
}
completion(true)
} catch {
print("eroorrrre")
completion(false)
}
print("CALL CORRECT")
print(data)
completion(true)
}
else {
completion(false)
debugPrint(response.result.error as Any)
}
}
}
我的控制台日志
eroorrrre
CALL CORRECT
128 bytes
我不确定我在这里做错了什么,任何帮助都会得到帮助
【问题讨论】:
-
永远不会在 catch 子句中打印像
eroorrrre这样的无意义文字字符串,打印error实例。它很可能向您显示什么您在这里做错了。如果出现错误,您将调用completion两次。不要那样做。 -
感谢我会更正
标签: swift alamofire flickr swifty-json