我有一个预先填充了字典的数组,每个字典由两个键组成。
{
name = object1;
quantity = 5;
},
{
name = object2;
quantity = 2;
}
我希望能够添加更多对象并组合任何重复的词典。因此,例如,如果我添加对象2的对象1和对象2中的3对,则结果就是这样。
{
name = object1;
quantity = 10;
},
{
name = object2;
quantity = 5;
}
我的最终目标是能够在表格视图中显示项目旁边的数量。实现这一目标的最佳方法是什么?
答案 0 :(得分:3)
听起来像是想要NSCountedSet
。
答案 1 :(得分:1)
如果您真的想要遍历现有结构,那么您可以执行以下操作:
for (NSMutableDictionary *dict in ArrayName) {
if([[dict valueForKey:@"name"] isEqual:someobject]) {
int oldValue = [[dict valueForKey:@"quantity"] intValue];
[dict setValue:[NSString stringWithFormat:@"%d",oldValue+1] forKey:@"quantity"];
}
}
我假设您将数量存储为NSString,您可能使用了其他类似NSNumber的东西。
我认为更好的想法是使用两个属性(名称和数量)创建自己的类。然后保持这些对象的一个数组并迭代它。
答案 2 :(得分:0)
好吧,因为你的词典的键总是看起来一样,我想知道这不是一个不同的词典:
{ object1: 10, object2: 5}
假设您的对象名称是有效键,我会将它们用作键,然后在需要添加更多对象时根据需要递增计数器。
答案 3 :(得分:0)
我不清楚你在做什么,但是,
你可以用一个字典(没有一个数组)来解决这个问题,该字典将你的对象存储为密钥,并将它们的计数作为其值。
所以当你想要添加一个对象时,首先要检查你是否有这个对象 - 如果你没有它,你添加object1 = 1 - 如果你有,那么你增加该object1 = 2的值