私は現在、次の2つの方法を持っています.1つ目は、ユーザーが初めてのときにのみ呼び出され、ユーザー設定をクラウドに保存して初期設定を実行し、2つ目は、ユーザーがアプリを使用するたびに、に基づいてクエリを実行して呼び出されますユーザーの好み。
[self doInitialSetupsForNewUser]; //Only happens for new user. Performs query on a block
[self getUserPrefsAndDoStuff]; //For all users
このメソッドgetUserPrefsAndDoStuff
は正常に機能しますが、ユーザーがまったく新しく、セットアップ メソッドを最初に呼び出す必要がある場合は、機能しません。内部doInitialSetupsForNewUser
では、ブロックを使用して Facebook に次の呼び出しを行います。
FBRequest *request = [FBRequest requestForMe];
[request startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
if (!error){ ... }
}];
私の問題は、ブロック構造が原因でgetUserPrefsAndDoStuff
、ユーザーの設定がダウンロードされてブロックに保存される前に時期尚早に呼び出されるため、doInitialSetupsForNewUser
誤ったデータを取得していることです。の前にセットアップ ブロックの実行が完了していることを確認するにはどうすればよいですかgetUserPrefsAndDoStuff
。