0

私の状況では、アプリがアクティブになるたびに、Facebook からデータを同期する必要があります。この同期はバックグラウンドで行う必要があり、GUI をロックしないでください (したがって、メイン キューで実行しないでください)。

したがって、私の- applicationDidBecomeActive:メソッドには次のコードがあります。

dispatch_async(dispatch_get_global_queue(0,0), ^{

    [[FacebookHelper sharedInstance] syncData];
});

FacebookHelper は、すべての Facebook 処理を処理するシングルトン クラスです。FacebookHelper クラスでは、Facebook デリゲート メソッドを実装しました。しかし、何らかの理由で上記のコードを実行すると、Facebook デリゲート メソッド- request:didLoad:(Facebook データのダウンロードが完了したとき) が呼び出されません。同じコードを実行するdispatch_syncと終了します (ただし、GUI はブロックされます)。

編集: Facebook SDK v2

4

1 に答える 1

0

- request:didLoad:実際にコードを分析したところ、デリゲート メソッドで行われた内部処理メソッドであることがわかりました。そのため、その内部処理メソッドを dispatch_async ブロック内に配置するだけで、バックグラウンドでうまく機能しました。

ご協力いただきありがとうございます!

于 2012-07-22T07:17:43.957 に答える