0

我有一个NSFetchRequest返回我所有保存的对象(称它们为Items)并将它们存储在NSMutableArray. 这些Items 中的每一个都有一个类别、一个数量和一些其他属性。我的目标是检查每个类别Item并存储同一类别对象的金额总和。所以如果我有这些Item

  • 红色的; 10.00
  • 蓝色的; 20.00
  • 绿; 5.00
  • 红色的; 5.00
  • 绿; 15.00

那么我会有一个数组或其他类型的容器,而不是:

  • 红色的; 15.00
  • 蓝色的; 20.00
  • 绿; 20.00

以这种方式组织数据的最佳方式是什么?我打算创建一个Totals只有类别和数量的对象类(称为它)。当我在 for 循环中遍历 fetch 结果时,Item在对象中添加具有相同类别的 sTotals并将它们存储在 a 中NSMutableArray。我遇到的问题是我不确定如何检查数组是否包含Totals具有特定属性的对象。具体来说,一个已经存在的类别。因此,如果存在“红色”,则将金额添加到其中,否则创建一个Totals具有“红色”类别和第一个Item金额的新对象。谢谢。

4

1 回答 1

1

要回答您的问题并为您提供可以证明在许多情况下有用的通用方法,您可以使用 [myObject isKindOfClass:aClass] 方法,然后使用 NSObject 的 respondsToSelector: 方法。

如果你知道你会得到什么样的数据。你可以用 Red = 0、Blue = 0、Green = 0 实例化一个对象 Totals,然后相应地添加数量。

作为另一种选择,您可以查看键值编码:链接在这里

您可以使用 NSMutableDictionary 类来实现这一点。如果键存在,您将查看您的总对象(NSMutableDictionary),如果不存在,则创建它,如果存在则添加值。

于 2012-04-06T22:43:48.020 回答