我想從PFFile中檢索包含多個圖像的圖像,並將它們放在一個滾動視圖中。到目前爲止,我已經嘗試了以下操作,但是這會返回一個錯誤「警告:正在主線程上執行長時間運行的操作。」從swift中在uiscrollview中加載圖像
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)
}}
}
感謝您的輸入,但同樣的錯誤仍然會發生。 – Eri
讓我看看你的代碼是什麼? –
dispatch_async(dispatch_get_main_queue()){ VAR imgFileData = userImageFile.getData() – Eri