複数の画像を含む PFFile から画像を取得し、それらを 1 つのスクロールビューに配置したいと考えています。これまでのところ、次のことを試しましたが、これは「警告:メインスレッドで長時間実行されている操作が実行されています」というエラーを返します。
let scrView = UIScrollView()
var query = PFQuery(className: "Pictures")
query.whereKey("uploader", equalTo: PFUser.currentUser()!)
query.orderByDescending("createdAt")
query.findObjectsInBackgroundWithBlock{
(posts: [AnyObject]?, error: NSError?) -> Void in
if error == nil {
for post in posts!{
self.imageFiles.append(post["imageFile"]as! PFFile)
self.imageText.append(post["imageText"]as! String)
}
for var i = 0; i < self.pictNumber; ++i {
var userImageFile = self.imageFiles[i]
println(userImageFile)
var imgFileData = userImageFile.getData()
var image = UIImage(data: imgFileData!)
var tempImageView = UIImageView (image: image)
tempImageView.frame = CGRectMake(CGFloat(width*i), 0, self.view.frame.width, self.view.frame.height)
scrView.addSubview(tempImageView)
}
私も次のことを試しましたが、PFFileから画像を抽出してスクロールビューに画像を追加する部分をスキップします。
let scrView = UIScrollView()
var query = PFQuery(className: "Pictures")
query.whereKey("uploader", equalTo: PFUser.currentUser()!)
query.orderByDescending("createdAt")
query.findObjectsInBackgroundWithBlock{
(posts: [AnyObject]?, error: NSError?) -> Void in
if error == nil {
for post in posts!{
self.imageFiles.append(post["imageFile"]as! PFFile)
self.imageText.append(post["imageText"]as! String)
}
for var i = 0; i < self.pictNumber; ++i {
var userImageFile = self.imageFiles[i]
println(userImageFile)
//Extracting pictures from PFFile
self.imageFiles[i].getDataInBackgroundWithBlock{
(imageData: NSData?, error: NSError?) -> Void in
if imageData != nil {
var image = UIImage(data: imageData!)
var tempImageView = UIImageView (image: image)
tempImageView.frame = CGRectMake(CGFloat(width*i), 0, self.view.frame.width, self.view.frame.height)
scrView.addSubview(tempImageView)
println(i)
}else {
println(error)
}}
}