1

**synchronously**へのasync電話を待つことができません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 は、指定されたハンドラーを常に呼び出すことがわかっている私自身の関数です。

助けてください!

4

1 に答える 1

0

気にしないでください。Facebook SDK を捨てて、代わりに contentsOfURL 関数を使用することで解決しました。これは同期であるためです。

于 2016-02-29T14:39:44.723 に答える