Swift. Вытягиваю картинки в ячейки через api. Все билдится, нннно вместо картинок - пусто. Возвращается nil. Пол дня сижу не могу понять!

Swift. Я новичок еще. Вытягиваю картинки в ячейки через api. Все отлично билдится, нннно вместо картинок - пусто. Возвращается nil. Пол дня сижу не могу понять!!

Если этот ответ есть где-то, прошу простить, и если не сложно дать ссылку, благодарю.

Ссылка api - https://swiftbook.ru//wp-content/uploads/api/api_courses

Где туплю подскажите?

Заранее очень благодарен за помощь и разъяснения !!!

import UIKit

class CourseCell: UITableViewCell {
    @IBOutlet var courseImage: UIImageView!
    @IBOutlet var courseNameLabel: UILabel!
    @IBOutlet var numberOfLessons: UILabel!
    @IBOutlet var numberOfTests: UILabel!
    
    func configure(with course: Course) {
        
        courseNameLabel.text = course.name
        numberOfLessons.text = "Number of lessons \(course.number_of_lessons ?? 0)"
        numberOfTests.text = "Number of tests \(course.number_of_tests ?? 0)"
        
        DispatchQueue.global().async {
            
            guard let stringUrl = course.imageUrl,
                  let imageURL = URL(string: stringUrl),
                  let imageData = try? Data(contentsOf: imageURL)
            else {
                return
            }
            
            DispatchQueue.main.async {
                self.courseImage.image = UIImage(data: imageData)
            }      
   
        }   
    }
}

Ответы (2 шт):

Автор решения: schmidt9

Проблема здесь в том, что вы используете не ту очередь для работы с UI (global), в то время как нужно использовать main, исправление:

    func configure(with course: Course) {
        
        courseNameLabel.text = course.name
        numberOfLessons.text = "Number of lessons \(course.number_of_lessons ?? 0)"
        numberOfTests.text = "Number of tests \(course.number_of_tests ?? 0)"
        
        DispatchQueue.main.async {
            
            guard let stringUrl = course.imageUrl,
                  let imageURL = URL(string: stringUrl),
                  let imageData = try? Data(contentsOf: imageURL)
            else {
                return
            }
            
            self.courseImage.image = UIImage(data: imageData)
   
        }
    }
→ Ссылка
Автор решения: V777

Проблема решилась, когда я с включенным VPN забилдил очередной раз, и все картинки погрузились. Все потому что в Украине залакированы сейчас все .ru домены, а url api как раз с .ru

Надо было видеть мои глаза

→ Ссылка