【发布时间】:2016-11-20 15:53:00
【问题描述】:
我正在使用 Alamofire 从 flickr API 获取 JSON 数据。 这里的 if 函数,它从响应中准备一个 URL 数组:
func urlTolinkslist (tag: String) {
print (viewSearchBar.text)
let url = "https://api.flickr.com/services/feeds/photos_public.gne?tags=\(tag.replacingOccurrences(of: " ", with: "%20"))&format=json&nojsoncallback=1"
Alamofire.request(url).validate().responseJSON { response in
switch response.result {
case .success(let value):
let json = JSON(value)
let items = json["items"]
self.linksList = []
for i in 0..<items.count {
let item = items[i]
let media = item["media"]
var link = String(describing: media["m"])
self.linksList.append(link)
}
print("count: \(self.linksList.count)")
self.viewCollectionView.reloadData()
case .failure(let error):
print(error)
}
}
}
API URL 中的“tag”是我从搜索栏中获得的参数。在大多数情况下它工作正常,但在某些情况下我得到:
[Result]: FAILURE: responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed(Error Domain=NSCocoaErrorDomain Code=3840 "Invalid escape sequence around character 1029." UserInfo={NSDebugDescription=Invalid escape sequence around character 1029.}))
我认为可能有一些额外的字符,但我不知道如何修复它。
【问题讨论】: