func getposts(skip: int){ var query = pfquery(classname: self.parseclassname!) query.includekey("posted_by") query.findobjectsinbackgroundwithblock { (objects: [anyobject]?, error: nserror?) -> void in if error == nil && objects != nil { if let objects = objects as? [pfobject] { var requestgroup = dispatch_group_create() post in objects { dispatch_group_enter(requestgroup) let querykommentar1 = pfquery(classname:"comment") querykommentar1.wherekey("posted_to", equalto: post) querykommentar1.limit = 3 querykommentar1.includekey("written_by") querykommentar1.findobjectsinbackgroundwithblock() { (commentobjects: [anyobject]?, error: nserror?) -> void in //creating uitableviewcells data , store in array dispatch_group_leave(requestgroup) } } println("successfully retrieved \(objects.count) posts.") dispatch_group_notify(requestgroup, dispatch_get_main_queue()) { println("all done") } } } } } so, i'm not sure if misunderstood dispatch groups, intention make 2 parse queries, targeting different classes, , create tableviewcells data provided. works fine, since don't want data load when user scrolling table, want preload data , create cells, , store them in array. since remove activity indication, , reload table, time fetch complete though (after som googleing) dispatch groups might solution this. however, "all done" never printed in console.
when made dispatch group around outer query (entering group before query, , leaving last line in block) worked fine. doing wrong? impossible use when nesting asynchronous calls?
fyi, removed lot of code, creating cells , using data parse, since spare reading mess.
this dispatch group pattern right.
i suggest logging message @ dispatch_group_enter , @ dispatch_group_leave , see if it's getting called think should , every enter offset leave.
if number of occurrences of dispatch_group_leave less number of calls dispatch_group_enter, dispatch_group_notify block not called.
perhaps have path in inner findobjectsinbackgroundwithblock closure preventing hitting dispatch_group_leave call.
Comments
Post a Comment