我有一个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
标题,似乎插座没有链接。我不明白为什么我无法从completionHandler
的广告代码FBRequestConnection
链接到我的商店...
如果我尝试从Title
调用的选择器设置ViewController
,那就没问题了。
有人可以解释一下它的原因吗?我仍然是一个客观的初学者。
答案 0 :(得分: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"];
});
}];