Я получаю данные от пользователя, такие как название, описание и фотография продукта, и отображаю их на странице сообщений.Я получаю изображение, загружаю URL в firebase, затем снова получаю его с сеансом URL, и вот мой код для получения изображения:
class ImageService {
static let cache = NSCache<NSString, UIImage>()
static func downloadImage(withURL url:URL, completion: @escaping (_ image:UIImage?)->()) {
let dataTask = URLSession.shared.dataTask(with: url) { data, responseURL, error in
var downloadedImage:UIImage?
if let data = data {
downloadedImage = UIImage(data: data)
}
if downloadedImage != nil {
cache.setObject(downloadedImage!, forKey: url.absoluteString as NSString)
}
DispatchQueue.main.async {
completion(downloadedImage)
}
}
dataTask.resume()
}
static func getImage(withURL url:URL, completion: @escaping (_ image:UIImage?)->()) {
if let image = cache.object(forKey: url.absoluteString as NSString) {
completion(image)
} else {
downloadImage(withURL: url, completion: completion)
}
}
, а вот код, в котором я установил эти данные:
func set(post:Post) {
ImageService.getImage(withURL: post.imageid) { (image) in
self.postimage.image = image
}
titlel.text = post.title
usernamel.text = post.username
desct.text = post.desc
}
, и мои сообщения выглядят так, когда приложение запущено: не годится и nogood2 .Кроме того, вот фотография моей камеры, и у них у всех есть ограничения, поэтому я не думаю, что проблема в этой камере, но все еще .Я просто хочу, чтобы пользователи рассматривали изображения как квадратные нормальные картинки, выглядящие не такими высокими и худыми.