いくつかのレシピを一覧表示するテーブル ビューを想像してみてください。ユーザーがレシピをタップするたびに、レシピの材料を一覧表示する新しいテーブル ビューが読み込まれます。
情報を取得するために、次を使用して REST API を非同期呼び出ししています。
NSURLRequest *request = [NSURLRequest requestWithURL:url
cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
timeoutInterval:30];
ユーザーがレシピをタップすると、レシピの材料を取得するために API が呼び出されます。ただし、新しいビュー (材料のリスト) に入ると、回答を受け取る前に、ユーザーは戻って新しいレシピを選択できます。
この場合、私は 2 つの答えを受け取ります。リクエストごとに 1 つ。問題は、この回答がどのリクエストに対するものなのかわからず、間違った回答から間違ったコンテンツで UI を更新することです。
この場合、どちらが正しいアプローチかわかりません。各リクエストパラメーターを回答に含めることを考えています。したがって、たとえば、API を使用して特定の用語を検索する場合、「foo」と言います。その用語も回答に含めます。次に例を示します。
リクエスト:
http://domain.com/api/search?term=foo
答え
{
"requestType": "search",
"term": "foo",
"result" : "a foo result"
}
各回答に各リクエスト パラメータを含めるのは奇妙に思えますが、非同期で呼び出す準備ができたステートレス API を作成するために見つけた唯一の解決策です。
これを達成する他の方法はありますか?
(私は、回答が受信されたときに呼び出される各リクエストにオブジェクトを割り当てるデリゲート パターンを使用しています。問題は、レシピの例では、レシピの材料がリストされるたびに材料テーブル ビューが再利用されることです)。