0

我有一个应用程序向用户显示许多消息。我需要通知服务器用户已阅读消息。为此,我需要发送一个/api/mark_as_read/带有消息 ID 的 HTTP POST 请求以标记为已读,例如:

ID: 1234
ID: 5678
ID: 90AB

请注意,HTTP 规范允许可能重复的密钥,API 在这种情况下使用。

我目前正在使用 AFHTTPClient(AFNetworking 库的一部分)。POST 参数作为 NSDictionary 传递给 AFHTTPClient,它当然具有唯一的键,这意味着我只能传入一个名为“ID”的值。

我已经搜索了一段时间的解决方案,但无法挖掘任何东西。但我相信很多人之前都遇到过这个问题。如何在 Objective-C 中向我的 HTTP 客户端传递具有非唯一键的字典?

更新- 我能够通过更新 AFNetworking 库并将一组 ID 放入一个 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

字典是一个集合,键是“定义”唯一的,这不能用标准字典来完成

但是可以继承 set 并且只使用 keys 数组和 dups 数组。afnetwork 会将其用作字典,并提供您想要的输出。

他们可能有这样的课程,或者您可以轻松编写一种类似的 http://cocoaheads.byu.edu/code/CHDataStructures

**这是低效的,只能用于此目的**

于 2012-11-08T22:44:45.303 回答