ios - Loading images from parse in uiscrollview in swift -


i want retrieve images pffile, contains multiple images, , put them in 1 scrollview. far, have tried following, returns error "warning: long-running operation being executed on main thread."

    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 {             post in posts!{                 self.imagefiles.append(post["imagefile"]as! pffile)                 self.imagetext.append(post["imagetext"]as! string)             }       var = 0; < 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)           } 

i have tried following, skips part extracts images pffile , adds images scrollview.

    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 {             post in posts!{                 self.imagefiles.append(post["imagefile"]as! pffile)                 self.imagetext.append(post["imagetext"]as! string)             }       var = 0; < self.pictnumber; ++i {         var userimagefile = self.imagefiles[i]         println(userimagefile)          //extracting pictures 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)             }}            } 

try using userimagefile.getdatainbackgroundwithblock() instead of userimagefile.getdata()

userimagefile.getdata gets file in main thread can potentially freeze ui if file large or have slow internet connection


Comments