Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

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

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Databases And Python Programming MySQL MongoDB OOP And Tkinter

Authors: R. PANNEERSELVAM

1st Edition

9357011331, 978-9357011334

More Books

Students also viewed these Databases questions