Это трехступенчатый процесс. Сначала вы создадите объект NSURL
для хранения URL, к которому мы пытаемся получить доступ. Мы передадим этот URL методу класса NSData
, +dataWithContentsOfURL:
, чтобы получить изображение по сети в виде необработанных данных, а затем используем метод класса +imageWithData:
в UIImage
, чтобы преобразовать данные в изображение.
NSURL *imageURL = [NSURL URLWithString:@"http://example.com/demo.jpg"];
NSData *imageData = [NSData dataWithContentsOfURL:imageURL];
UIImage *image = [UIImage imageWithData:imageData];
Обратите внимание, что +dataWithContentsOfURL:
выполняет синхронный сетевой запрос. Если вы запустите это в главном потоке, он будет блокировать пользовательский интерфейс, пока данные изображения не будут получены из сети. Рекомендуется запускать любой сетевой код в фоновом потоке. Если вы ориентируетесь на OS 4.0+, вы можете сделать что-то вроде этого ...
NSURL *imageURL = [NSURL URLWithString:@"http://example.com/demo.jpg"];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
NSData *imageData = [NSData dataWithContentsOfURL:imageURL];
dispatch_async(dispatch_get_main_queue(), ^{
// Update the UI
self.imageView.image = [UIImage imageWithData:imageData];
});
});