0

私は今数時間苦しんでいます。

iOS 用を使用してFacebook APIからデータを取得しようとしています。Facebook SDK 3.5メソッドを使用してリクエストを発行するとstartWithCompletionHandler()、関数全体が終了するのを待ってからブロックの内容が実行されるため、新しいスレッドがディスパッチされないようです。そのため、クラスの他の領域で userData の内容を読み取ることができません。

セマフォを試してみましたが、常にデッドロックに陥っているようです。

userDataはグローバルです。

FBRequest *request = [FBRequest requestForMe];        
    // Send request to Facebook
    [request startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
        if (!error) {
            // result is a dictionary with the user's Facebook data
            userData = (NSDictionary *)result;

            NSLog(@"Block return: %@",userData[@"id"]);

        } else{
            NSLog(@"Facebook Initialization error: %@", error);
        }
    }
     ];
4

3 に答える 3