0

非常に多くの情報が含まれているViewControllerため、コードを読みやすくするために、この VC の一部を 2 つのビューに分割しました。したがって、これらのビューを初期化し、フレームを設定して、サブビューとして ViewController に追加します。

これらのビューには が.xib接続されており、すべての にリンクできIBOutletsます。ここまでは大丈夫だけど..

..これらのビューの 1 つで、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...

Titlefrom と呼ばれるセレクターから 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 に答える