【发布时间】:2014-07-28 15:01:34
【问题描述】:
我有自定义对象的 NSArray。自定义对象具有如下属性:名称、时间戳、标题等...在此数组中,有多个对象具有相同的名称但具有不同的时间戳。我需要为每个名字获取最近的记录。我想使用NSPredicate,但我不知道如何将名称搜索与时间戳比较结合起来......
【问题讨论】:
标签: ios nspredicate
我有自定义对象的 NSArray。自定义对象具有如下属性:名称、时间戳、标题等...在此数组中,有多个对象具有相同的名称但具有不同的时间戳。我需要为每个名字获取最近的记录。我想使用NSPredicate,但我不知道如何将名称搜索与时间戳比较结合起来......
【问题讨论】:
标签: ios nspredicate
首先,您需要使用以下方法过滤所有相同的名称:
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 中时间戳降序排列的数组。现在你需要使用它来应用在主数组中。
希望这会对您有所帮助。快乐编码:)
【讨论】: