can't think of name question...if can think of better one, please feel free edit :)
i building ios app using swift , parse.com.
in app, have main pfquerytableviewcontroller loads data parse cloud custom uitableviewcells.
one of values want label on cells takes while parse return , getting using findobjectsinbackgroundwithblock().
in cellforrowatindexpath when i'm loading table, have following code:
// set cells each row of table override func tableview(tableview: uitableview, cellforrowatindexpath indexpath: nsindexpath, object: pfobject?) -> pftableviewcell? { var cell: customtableviewcell = tableview.dequeuereusablecellwithidentifier("mycell", forindexpath: indexpath) as! customtableviewcell // course object objectid hand getcoursegrade function var anobjectid: string = object!.objectid! cell.setcell(name: object!["objectname"] as! string, code: object!["objectcode"] as! string, grade: getobjectgrade(anobjectid)) return cell } in code above, calling function called getobjectgrade pass value across setcell() function sets customtableviewcells builds uitableview runs below (simplified):
func getobjectgrade(objectidstring: string) -> float { // set starting value of objectgrade var objectgrade: float = -1 //...i set pfquery query?.findobjectsinbackgroundwithblock({ (objects: [anyobject]?, error: nserror?) -> void in //...here retrive value need parse --> valuefromparse objectgrade = valuefromparse }) return objectgrade } now, aware not work...obviously code not wait findobjectsinbackgroundwithblock() code run , returns objectgrade before has been updated.
my question: how set value of label of cell once findobjectsinbackgroundwithblock() code section complete?
solved! moved "getobjectgrade" function customtableviewcell file , called there. :) if has issue , needs help, comment , i'll try :)
Comments
Post a Comment