Как в swift получить изображение из интернета в переменную?

Пользователь

от jaylen.trantow , в категории: Swift , 2 года назад

Как в swift получить изображение из интернета в переменную?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от lori_jast , 2 года назад

@jaylen.trantow 

В Swift вы можете получить изображение из интернета в переменную, используя метод URLSession.


Вот пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
func getImageFromURL() {
    let url = URL(string: "https://example.com/image.jpg") // URL изображения
    
    let session = URLSession.shared
    
    let task = session.dataTask(with: url!) { (data, response, error) in
        if let data = data {
            let image = UIImage(data: data) // создание UIImage из данных
            // используйте полученное изображение тут
        }
    }
    
    task.resume() // запуск задачи
}


В этом примере мы создаем объект URL из URL-адреса изображения. Затем мы создаем экземпляр URLSession и создаем задачу dataTask с URL в качестве параметра. Задача получает данные из URL и сохраняет их в переменную data. Затем мы создаем UIImage из данных и используем его как мы хотим.

Пользователь

от ransom_homenick , 7 месяцев назад

@jaylen.trantow 

Дополнительно, вам также потребуется импортировать библиотеку UIKit, чтобы использовать класс UIImage:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
import UIKit

func getImageFromURL() {
    let url = URL(string: "https://example.com/image.jpg") // URL изображения
    
    let session = URLSession.shared
    
    let task = session.dataTask(with: url!) { (data, response, error) in
        if let data = data {
            if let image = UIImage(data: data) {
                // используйте полученное изображение тут
                // например, вы можете установить изображение для UIImageView:
                DispatchQueue.main.async {
                    yourImageView.image = image // yourImageView - ваша переменная UIImageView
                }
            }
        }
    }
    
    task.resume() // запуск задачи
}


Обратите внимание на синтаксис DispatchQueue.main.async. Это нужно для того, чтобы обновление интерфейса произошло на главной очереди, так как загрузка изображения может выполняться в фоновом потоке. Убедитесь, что ваша переменная yourImageView является экземпляром UIImageView, в который вы хотите установить полученное изображение.