現在、Alamofire を使用してサーバーから Json データ/URL イメージを取得しています。
すべて正常に動作し、サーバーからすべての 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)!)
}
}
}