Search code examples
iosswiftfacebook-graph-apifbsdk

dispatch_group_wait not waiting


I'm having trouble waiting **synchronously** for an async call to the Facebook Graph API.

var message: String? = ""
var error: ErrorType?

let dispatchGroup = dispatch_group_create()
dispatch_group_enter(dispatchGroup)

FacebookGraphAPI.getPostsWithCompletionHandler("[pageID]", parameters: ["limit": 1]) {
    (posts, error) in

    if error != nil {
        error = ErrorType.Some
    }

    if posts == nil || posts!.count == 0 || !posts![0].createdTime.isToday {
        error = ErrorType.Some
    }

    if error == nil {
        message = posts![0].message
    }

    dispatch_group_leave(dispatchGroup)
}

dispatch_group_wait(dispatchGroup, DISPATCH_TIME_FOREVER)

if error != nil {
    throw error!
}

return message

getPostsWithCompletionHandler is my own function which I know always calls the specified handler.

Please help!


Solution

  • Never mind, I solved by ditching the Facebook SDK and using contentsOfURL function instead because it's synchronous.