我的情况是,每次我的应用程序激活时,我都需要从 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