Iphone 基于属性将对象数组缩减为唯一对象

Iphone 基于属性将对象数组缩减为唯一对象,iphone,core-data,nsmutablearray,nsset,Iphone,Core Data,Nsmutablearray,Nsset,嗯 我有一个包含多个对象的数组,这些对象由我的核心数据堆栈填充 . 假设每个对象都有一个名称、开始日期、结束日期和金额属性 我需要做的是将这个数组减少到只有唯一的对象,而不仅仅是基于名称(NSString)的值 我在for循环中尝试过等质量方法,而在for循环和using集合中,我似乎无法理解 有什么想法吗 更新:我应该更清楚。基本上,我想做的是获取一个现有数组,删除具有相同属性值的重复对象,最后得到一个唯一对象数组 在没有谓词的情况下提取所有对象-结果是一个数组,其中可能包含具有相同名称字符串

我有一个包含多个对象的数组,这些对象由我的核心数据堆栈填充 . 假设每个对象都有一个名称、开始日期、结束日期和金额属性

我需要做的是将这个数组减少到只有唯一的对象,而不仅仅是基于名称(NSString)的值

我在for循环中尝试过等质量方法,而在for循环和using集合中,我似乎无法理解

有什么想法吗

更新:我应该更清楚。基本上,我想做的是获取一个现有数组,删除具有相同属性值的重复对象,最后得到一个唯一对象数组

在没有谓词的情况下提取所有对象-结果是一个数组,其中可能包含具有相同名称字符串的多个对象 迭代数组,创建一个新的字符串数组,复制每个实体的名称字符串 将该数组转换为集合-根据定义,它只包含唯一的名称 根据需要访问核心数据实体,方法是对集合中的任何名称使用谓词名称=%@进行获取,或将集合转换回数组以便于使用。
别客气。我发现使用一组疯狂的if语句可能不是最有效的方法,但它获得了我需要的结果

将对象提取到NSArray中。 创建NSMutableDictionary。 迭代数组。 检查字典中用作键的属性是否已就位,如果已就位,请继续。 如果没有,请将其添加到词典中 循环完成后,调用字典上的所有值。
您现在拥有了一个在该属性上唯一的对象数组。

如果您要回答自己的问题,至少要发布代码来帮助其他人解决同样的问题。这可能是一个对他们同样有效的解决方案。如果你要求他人发布代码或帮助你,请意识到这是一条双向的道路

Hmm,coredata方面不是我工作的角度。数组是需要减少的,因为它已经从一个复杂的关系和谓词填充。所以我只需要集中精力减少现有的数组。好吧,然后-制作一个包含对象的NSDictionary,由名称值键入。迭代字典键,将每个键添加到数组中。将数组转换为一个集合,再转换为一个数组,然后按名称访问每个唯一的对象。这是一个简单而明显的方法——你也可以用谓词来做——参见