0

ユーザーにいくつかのメッセージを表示するアプリがあります。ユーザーがメッセージを読んだことをサーバーに通知する必要があります。/api/mark_as_read/これを行うには、次のように、既読としてマークするメッセージのIDを使用してHTTPPOSTリクエストを送信する必要があります。

ID: 1234
ID: 5678
ID: 90AB

HTTP仕様では、重複する可能性のあるキーが許可されていることに注意してください。この場合、APIがこれを使用します。

現在、AFHTTPClient(AFNetworkingライブラリの一部)を使用しています。POSTパラメータはNSDictionaryとしてAFHTTPClientに渡されます。これにはもちろん一意のキーがあります。つまり、「ID」と呼ばれる1つの値しか渡すことができません。

私はしばらくの間解決策を探しましたが、何も掘り下げることができませんでした。しかし、私は多くの人々が以前にこの問題に遭遇したと確信しています。Objective-Cで一意でないキーを使用してHTTPクライアントに辞書を渡すにはどうすればよいですか?

更新-AFNetworkingライブラリを更新し、IDの配列を1つのNSDictionary値に入れることで、問題を解決することができました。(下記参照。)

4

2 に答える 2

2

値の配列を渡してみてください:

NSArray *values = [NSArray arrayWithObjects:@"1234", @"5678", @"90AB", nil]; 
NSDictionary *params = [NSDictionary dictionaryWithObjectAndKey:values, @"ID"];
于 2012-11-08T20:17:57.813 に答える
0

辞書はセットであり、キーは「定義」によって一意です。これは標準のdictでは実行できません。

ただし、setを継承し、keys配列とdups配列を使用することもできます。afnetworkはそれを辞書として使用し、必要な出力を提供します。

彼らはそのようなクラスを持っているかもしれません、あるいはあなたは簡単に1つのちょっと似たようなものを書くことができます http://cocoaheads.byu.edu/code/CHDataStructures

**これは非効率的であり、この目的にのみ使用する必要があります**

于 2012-11-08T22:44:45.303 に答える