NSPredicate获取具有名称和条件的项目

时间:2014-07-28 15:01:34

标签: ios nspredicate

我有自定义对象的NSArray。自定义对象具有以下属性:名称,时间戳,标题等...在此数组中,有多个具有相同名称但具有不同时间戳的对象。我需要为每个名字获取最新记录。我想使用NSPredicate,但我不知道如何将搜索名称与时间戳的比较结合起来......

1 个答案:

答案 0 :(得分:2)

首先,您需要使用以下方法过滤所有相同的名称:

NSArray *arrName1 = [NSArray ]

NSArray *arrData; //This array contains main data
NSString *strName1 = @"Amit"; //Taken Amit name for sample

//This will give you array with same name
NSArray *arrName1 = [arrData filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@" name == %@",strName1]];

//Now you can sort this array using NSSortDescriptor based on timestamp
NSSortDescriptor * sortByTimeStamp = [NSSortDescriptor sortDescriptorWithKey:@"timestamp" ascending:NO];
[scores sortUsingDescriptors:[NSArray arrayWithObject:sortByTimeStamp]];

这将以arrName1中的时间戳的降序为您提供数组。现在您需要使用它来应用主阵列。

希望这会对你有所帮助。快乐的编码:)