我正在尝试设置NSSet以从NSDictionary对象的NSMutableArray中删除所有重复项。但是我不确定如何将NSSet创建所需的值之一设置为NSMutableArray的NSDictionary对象中的元素...希望这是有道理的。
这就是NSDictionary的样子
ID = 22;
SERIESID = 33;
YEAREND = 2002;
YEARSTART = 1996;
这是我目前的代码
NSSet *uniqueElements = [NSSet setWithArray:yearArray];
// iterate over the unique items
for(id element in uniqueElements) {
// create new NSArray of unique entries
}
我想知道如何根据yearArray中每个NSDictionary的SERIESID值创建一个唯一的yearArray。
任何帮助将不胜感激。
答案 0 :(得分:4)
你可以试试这个
NSMutableArray *resultantArray = [NSMutableArray array];
for(NSDictionary *dict in yearArray)
{
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SERIESID == %@",
[dict valueForKey:@"SERIESID"]];
NSArray filteredArray = [resultantArray filteredArrayUsingPredicate:predicate];
if(![filteredArray count])
{
[resultantArray addObject:dict];
}
}
答案 1 :(得分:0)
我已经更新了Suhas给出的解决方案:
NSMutableArray *resultantArray = [NSMutableArray array];
NSMutableArray * yearArrayCopy = [yearArray copy];
for(NSDictionary *dict in yearArrayCopy)
{
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SERIESID == %@",
[dict valueForKey:@"SERIESID"]];
NSArray *filteredArray = [yearArray filteredArrayUsingPredicate:predicate];
if([filteredArray count])
{
[resultantArray addObject:dict];
[yearArray removeObjectsInArray:filteredArray];
}
}
“resulArray”将只包含唯一元素。