В настоящее время я использую Alamofire для получения данных/URL-изображений Json с сервера.
Все работает нормально, и я могу загрузить все URL-изображения с сервера в UIImageView. Затем пользователь может провести пальцем слева направо, чтобы просмотреть каждое изображение как фотогалерею.
В настоящее время, когда я извлекаю данные, я перебираю свой NSArray, преобразовываю каждый URL-адрес в изображение, а затем добавляю каждое изображение в UIImage[].
Зацикливание NSArray действительно замедляет мое приложение при первом запуске, есть ли способ ускорить этот процесс? Или лучший / более быстрый способ скрыть URL-адреса в изображения в фоновом режиме?
var pages = NSArray()
var mutable_pages = NSMutableArray()
var pageImages: [UIImage] = []
override func viewDidLoad() {
super.viewDidLoad()
self.fetchPages()
}
func fetchPages() {
Alamofire.request(.GET, "http://www.myurl.com/api/pages.json").responseJSON() {
(_, _, data, _) in
self.pages = data!.valueForKey("page_url") as NSArray!
self.mutable_pages = NSMutableArray(array: self.pages)
###THIS IS REALLY SLOW, IS THERE A FASTER SOLUTION
for var i = 0; i < self.mutable_pages.count; i++ {
###Construct the imgUrl to get an image URL for the pages
let urlString: NSString = self.mutable_pages[i] as NSString
var imgURL: NSURL = NSURL(string: urlString)!
var imgData: NSData = NSData(contentsOfURL: imgURL)!
###append each image into UIImage
self.pageImages.append(UIImage(data: imgData)!)
}
}
}
var imgData: NSData = NSData(contentsOfURL: imgURL)!
— это то, что действительно занимает больше всего времени. Я также не думаю, что это можно обойти; получение изображений является интенсивной задачей. - person 67cherries   schedule 17.12.2014