У меня есть tableView с customCells, и мне нужно загрузить изображения из REST API (доступ с токеном авторизации). Поскольку я новичок в Swift, я наткнулся на несколько библиотек, и кажется, что KingFisher или AlamofireImage хороши для асинхронной загрузки и кэширования изображений, полученных из вызова API.
Но поскольку у моего API здесь есть токен доступа, как он может быть передан в этот запрос?
//image handling with kingfisher
if let imgView = cell.schoolCoverImage {
imgView.kf_setImageWithURL(
NSURL(string: "")!,
placeholderImage: nil,
optionsInfo: nil,
progressBlock: nil,
completionHandler: { (image, error, CacheType, imageURL) -> () in
self.tableView.reloadRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Automatic) }
)
}
Например, в Alamofire есть заголовки полей, в которые можно передать токен доступа.
//Sample API call with Alamofire
Alamofire.request(
.GET,
baseURL+schools+nonAcademicParameter,
headers: accessToken
)
.responseJSON { response in
switch response.result {
case .Success(let value):
completionHandler(value, nil)
case .Failure(let error):
completionHandler(nil, error)
}
}
Но с AlamofireImage заголовки полей кажутся недоступными.
//Image request with AlamofireImage
Alamofire.request(
.GET,
"https://httpbin.org/image/png"),
headers: ["Authorization" : "Bearer fbzi5u0f5kyajdcxrlnhl3zwl1t2wqaor"] //not available
.responseImage { response in
debugPrint(response)
print(response.request)
print(response.response)
debugPrint(response.result)
if let image = response.result.value {
print("image downloaded: \(image)")
}
}