I am trying to write a function that connects to my database to get object information, then returns the value (UserObject) which is called from another class. Below is my code. My problem is that the function is returning u before the completion block is done. I am using Theo for connection to my NEO4j database.
func getUserObjectFromDB(userID: NSString)->UserObject
{
let cyperQuery: String = "CYPHER QUERY from userID"
let cyperParams: Dictionary<String, AnyObject> = ["user" : "UserObject"]
let u=UserObject();
let fetchDispatchGroup: dispatch_group_t = dispatch_group_create()
dispatch_group_enter(fetchDispatchGroup)
theo.executeCypher(cyperQuery, params: cyperParams, completionBlock: {(cypher, error) in
println("response from cypher \(cypher)")
//PARSE THE RESPONSE FROM SERVER TO GET USER OBJECT
dispatch_group_leave(fetchDispatchGroup)
})
//Called After the dispatch group leaves
dispatch_group_notify(fetchDispatchGroup, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), {
})
return u