0

我有ViewController这么多信息,为了更好地阅读代码,我将此 VC 的部分内容拆分为两个视图。因此,我初始化这些视图,设置框架并将它们作为子视图添加到 ViewController。

这些视图有一个.xib连接,我可以链接到我所有的IBOutlets. 直到这里,一切都好,但是..

..在其中一个视图中,我需要查询 Facebook,以检索一些信息。所以我使用代码:

[FBRequestConnection startWithGraphPath:@"myGraphApiQuery"
                                 parameters:nil
                                 HTTPMethod:@"GET"
                          completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
                                 [myOutlet setTitle:@"Test"]; // here's the issue
}];

使用此代码myOutlet将永远不会设置Test标题,似乎插座没有链接。我不明白为什么我无法从...的块代码链接到我completionHandlerFBRequestConnection插座

如果我尝试Title从一个名为 from 的选择器中设置 from ViewController,那就没问题了..

有人可以解释一下它的原因吗?我仍然是一个objective-c初学者。

4

1 回答 1

0

FBRequestConnection在后台线程上调用来自的回调。UIKit 调用必须在主线程上进行。试试这个:

[FBRequestConnection startWithGraphPath:@"myGraphApiQuery"
                             parameters:nil
                             HTTPMethod:@"GET"
                      completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
                          dispatch_async(dispatch_get_main_queue(), ^{
                              [myOutlet setTitle:@"Test"];
                          });
}];
于 2012-09-25T00:19:24.733 回答