在目标C中使用int键映射

时间:2013-04-14 03:08:00

标签: objective-c map nsdictionary mutable

我需要将整数值映射到某种可变数组中的对象。什么是最好的方法来解决这个问题。我看到的唯一选择是使用objectiveC ++ ...

std::map<int, id> theMap;  // if i can use id?

或将整数添加到NSStringNSNumber中,以用作NSMutableDictionary的键。

我在我的网络类中使用它,客户端将发送一些数据(密钥将在有效负载中)。然后在读取时,将从数据包中提取密钥,然后将地图中的对象拉出以基于所接收的内容继续该程序。 (我担心客户端无法接收有效负载或丢失有效负载。)

哪种方法最好/最快?

1 个答案:

答案 0 :(得分:5)

最好的选择(如果你不想搞乱C ++)是使用NSMutableDictionary NSNumber作为键。使用新的文字语法更容易:

NSMutableDictionary *map = [NSMutableDictionary dictionary];
map[@1] = @"A value";
map[@578] = @"Another string";
int key = 310; // doesn't matter where this comes from
map[@(key)] = @"From a variable!";