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
Post a Comment