lan*_*ncy 5 core-data nsdate nsfetchedresultscontroller ios
我知道获取结果控制器有节名称键路径可以将获取的结果划分为多个部分.但是,我怎样才能将NSDate划分为每天或每个月的部分?或者其他任何方法来解决这个问题?谢谢.
您需要做的是在数据对象上创建瞬态属性,然后相应地对获取的结果进行排序.对于我曾经使用的TVGuide,我需要通过airDay对结果进行排序,最后通过startDate对事件进行排序,并使用section属性路径的transient属性:
在Event.m中:
-(NSString*) airDay
{
NSDateFormatter *dayFormatter=[[NSDateFormatter alloc] init];
[dayFormatter setLocale:[NSLocale currentLocale]];
[dayFormatter setDateStyle: NSDateFormatterMediumStyle];
[dayFormatter setDoesRelativeDateFormatting: YES];
return [dayFormatter stringFromDate:self.startDate];
}
Run Code Online (Sandbox Code Playgroud)
匹配的fetchrequest
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Event" inManagedObjectContext:[Database db].managedObjectContext];
[fetchRequest setEntity:entity];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:
[NSSortDescriptor sortDescriptorWithKey:@"startDate"
ascending:YES],
nil];
[fetchRequest setSortDescriptors:sortDescriptors];
NSFetchedResultsController *frc = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
managedObjectContext:[Database db].managedObjectContext
sectionNameKeyPath:@"airDay"
cacheName:@"SearchEvents"];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1895 次 |
| 最近记录: |