Đây là một quá trình ba bước. Trước tiên, bạn sẽ tạo đối tượng NSURL
để giữ URL mà chúng tôi đang cố gắng truy cập. Chúng tôi sẽ cung cấp URL này cho phương thức lớp học NSData
, +dataWithContentsOfURL:
để lấy hình ảnh qua mạng dưới dạng dữ liệu thô, sau đó sử dụng phương thức lớp +imageWithData:
trên UIImage
để chuyển đổi dữ liệu thành hình ảnh.
NSURL *imageURL = [NSURL URLWithString:@"http://example.com/demo.jpg"];
NSData *imageData = [NSData dataWithContentsOfURL:imageURL];
UIImage *image = [UIImage imageWithData:imageData];
Xin lưu ý rằng +dataWithContentsOfURL:
thực hiện yêu cầu mạng đồng bộ. Nếu bạn chạy nó trên luồng chính, nó sẽ chặn giao diện người dùng cho đến khi nhận được dữ liệu hình ảnh từ mạng. Thực hành tốt nhất là chạy bất kỳ mã mạng nào trên một chuỗi nền. Nếu bạn đang nhắm mục tiêu OS 4.0 + bạn có thể làm một cái gì đó như thế này ...
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];
});
});
Nguồn
2011-10-08 01:41:18
Có thể muốn xem dự án này: https://github.com/rs/SDWebImage – Intentss