#swift #sdwebimage
#swift #SDWebImage
Вопрос:
Нет информации о том, как использовать SDWebImage с базовой аутентификацией в Swift. Не могли бы вы сказать мне, пожалуйста, как я могу это сделать?
Например, если я использую Alamofire, я могу выполнить базовую авторизацию:
Alamofire.request(.GET, URLString, encoding: .JSON)
.authenticate(user: user, password: password)
....
Я получаю фотографию URL-адреса из Alamofire. Затем я хочу использовать SDWebImage для получения изображения и установить фон для кнопки, использующей это изображение.
Я думаю, мне нужно использовать sd_setImageWithURL
для получения изображения с сервера.
button.sd_setImageWithURL(NSURL(string: photo)!, forState: .Normal)
Но у меня есть базовая аутентификация, и мне нужно передать имя пользователя и пароль.
Комментарии:
1. что вы подразумеваете под базовой аутентификацией. Объясните подробнее
2. а также добавьте подробную информацию о том, что вы пробовали…
3. Я добавил пример из Alamofire
4. Подсказки: в Alamofire посмотрите
Request.swift
наauthenticate()
. Вы увидите, что он генерируетURLCredential
изuser
иpassword
, а в SDWebImage есть несколько объектов, обладающихNSURLCredential
свойством. Я думаю, было бы слишком посмотреть на код при загрузке изображения и проверить, какой объект он вызвал в источнике, а затем проверить, куда поместить эти учетные данные…5. Спасибо. Я обновил свою проблему
Ответ №1:
let sdDownloader = SDWebImageDownloader.shared()
sdDownloader.username = "username"
sdDownloader.password = "password"
let logoURL = UserDefaults.standard.value(forKey: "communityLogo") as? String
if let url = URL(string: logoURL!) {
sdDownloader.downloadImage(with: url, options: .continueInBackground, progress: { (_, _, _) in
}, completed: { (image, _, _, _) in
self.communityLogoImage.image = image
self.communityLogoImage.contentMode = .scaleAspectFit
})
}
Комментарии:
1. Привет, нет. Но для этого я использовал AlamofireImage.