我有一个由我的核心数据栈 填充多个对象的数组。 可以说每个对象都有一个名称,startdate,enddate和与之相关的金额属性
我需要做的是将这个数组减少到仅基于名称的唯一对象(不只是值),这是一个NSString的。
我试过for循环内的isEqual方法,while循环和使用集合,我似乎无法弄清楚。
任何想法?
更新:我应该更清楚。基本上我想要做的是取一个现有的数组,并删除具有相同属性值的重复对象,并最终得到一个唯一对象数组。
我有一个由我的核心数据栈 填充多个对象的数组。 可以说每个对象都有一个名称,startdate,enddate和与之相关的金额属性
我需要做的是将这个数组减少到仅基于名称的唯一对象(不只是值),这是一个NSString的。
我试过for循环内的isEqual方法,while循环和使用集合,我似乎无法弄清楚。
任何想法?
更新:我应该更清楚。基本上我想要做的是取一个现有的数组,并删除具有相同属性值的重复对象,并最终得到一个唯一对象数组。
没关系。我使用一组疯狂的if语句计算出了它,可能不是最有效的方式,但它获得了我需要的结果。
NSArray
。NSMutableDictionary
。continue
。-allValues
。您现在有一个在该属性上唯一的对象数组。
如果您要回答自己的问题,至少需要邮编以帮助其他人解决同一问题。它可能也是一种适用于他们的解决方案。如果你要求他人发布代码或帮助你,意识到这是一条双向街道
嗯,coredata方面不是我工作的角度。该数组是需要减少的,因为它已经从复杂的关系和谓词中填充。所以我只需要关注减少现有的数组。 – monotreme 2010-08-31 07:44:59
好了 - 制作一个包含对象的NSDictionary,并用“名称”值作为关键字。遍历字典键,将每个键添加到数组中。将数组转换为一个集合,回到数组中,然后访问每个唯一的(按名称)对象。 这是简单而明显的方式 - 您也可以使用谓词来完成 - 请参阅http:// www。drobnik.com/touch/2010/03/filtering-fun-with-predicates/ – 2010-08-31 10:47:47