Question
I STILL STRUGGLING TO GET THE IMAGES DOWNLOAD IN MY SIMULATOR, I GET THE NAMES ONLY. I THINK THE ERROR MIGHT BE IN THESE FOLLOWING
I STILL STRUGGLING TO GET THE IMAGES DOWNLOAD IN MY SIMULATOR, I GET THE NAMES ONLY. I THINK THE ERROR MIGHT BE IN THESE FOLLOWING CODE. PLEASE HELP THANK YOU
import Foundation
struct ResultArray: Codable {
var info: Info
var data = [ApiResult]()
}
struct ApiResult: Codable {
var id: Int?
var films: [String]?
var tvShows, videoGames, parkAttractions: [String]?
var sourceURL: String?
var name: String?
var imageURL: String?
var createdAt, updatedAt: String
}
struct Info: Codable {
var count, totalPages: Int
var nextPage: String
}
func < (lhs: ApiResult, rhs: ApiResult) -> Bool {
return lhs.name!.localizedStandardCompare(rhs.name!)
== .orderedAscending
}
====================================================
import UIKit
class ApiResultCell: UITableViewCell {
var downloadTask: URLSessionDownloadTask?
@IBOutlet weak var nameLabel: UILabel!
@IBOutlet weak var title: UILabel!
@IBOutlet weak var imageUrl: UIImageView!
override func awakeFromNib() {
super.awakeFromNib()
let selectedView = UIView(frame: CGRect.zero)
selectedView.backgroundColor = UIColor(named: "searchBar")?.withAlphaComponent(0.5)
selectedBackgroundView = selectedView
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
}
func configure(for resulta: ApiResult) {
nameLabel.text = resulta.name
if resulta.title?.isEmpty ?? true {
title.text = "Unknown"
} else {
nameLabel.text = String(format: "%@ (%@)", resulta.imageURL!, resulta.name!)
imageUrl.image = UIImage(systemName: "square")
if let imageURL = URL(string: resulta.imageURL ?? "No Image") {
downloadTask = imageUrl.loadImage(url: imageURL)
}
}
}
override func prepareForReuse() {
super.prepareForReuse()
downloadTask?.cancel()
downloadTask = nil
}
}
=========================================
import UIKit
extension UIImageView {
func loadImage(url: URL) -> URLSessionDownloadTask {
let session = URLSession.shared
let downloadTask = session.downloadTask(with: url) {
[weak self] url, _, error in
if error == nil, let url = url,
let data = try? Data(contentsOf: url),
let imageURL = UIImage(data: data) {
DispatchQueue.main.async {
if let weakSelf = self {
weakSelf.image = imageURL
}
} }
}
downloadTask.resume()
return downloadTask
}
}
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started