Ios 核心数据按日期排序NSSortDescriptor
我一直在寻找使用NSSortDescriptor对数据进行排序的问题的答案。我正在开发核心数据应用程序,比如说,我有一个摄影师和照片实体(一对多)一个摄影师可以有很多照片。我需要做的是能够显示按最新照片排序的摄影师列表。所以,如果摄影师A昨天上传了照片,摄影师B今天上传了照片,我需要在我的TableView中显示这一点 摄影师B 摄影师A 我在下面使用的代码是按时间戳对摄影师进行排序,我在照片中也有相同的时间戳属性。我如何根据摄影师拍摄的时间戳对其进行分类 我无法使用@“Photos.timeStamp”,因为照片是NSSet,可能有多张照片Ios 核心数据按日期排序NSSortDescriptor,ios,core-data,nssortdescriptor,Ios,Core Data,Nssortdescriptor,我一直在寻找使用NSSortDescriptor对数据进行排序的问题的答案。我正在开发核心数据应用程序,比如说,我有一个摄影师和照片实体(一对多)一个摄影师可以有很多照片。我需要做的是能够显示按最新照片排序的摄影师列表。所以,如果摄影师A昨天上传了照片,摄影师B今天上传了照片,我需要在我的TableView中显示这一点 摄影师B 摄影师A 我在下面使用的代码是按时间戳对摄影师进行排序,我在照片中也有相同的时间戳属性。我如何根据摄影师拍摄的时间戳对其进行分类 我无法使用@“Photos.timeS
- (NSFetchedResultsController *)PhotographerFRC
{
if (!_PhotographerFRC) {
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@“Photographer"];
fetchRequest.sortDescriptors =@[[NSSortDescriptor sortDescriptorWithKey:@"timeStamp" ascending:NO]];
//[fetchRequest setFetchBatchSize:20];
_PhotographerFRC = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:MOC sectionNameKeyPath:nil cacheName:nil];
_PhotographerFRC.delegate = self;
}
return _PhotographerFRC;
}
在
摄影师
上创建一个名为lastPhotoDate
的附加属性,并在通过覆盖摄影师子类上的addPhotosObject
方法创建新的照片
时设置该属性
下面是一个例子
//
// Company.h
// CoreDataLibraryApp
//
// Created by Duncan Groenewald on 13/01/2014.
// Copyright (c) 2014 OSSH Pty Ltd. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>
@class Person, Program;
@interface Company : NSManagedObject
@property (nonatomic, retain) NSString * name;
@property (nonatomic, retain) NSSet *programs;
@property (nonatomic, retain) NSSet *employees;
@end
@interface Company (CoreDataGeneratedAccessors)
- (void)addProgramsObject:(Program *)value;
- (void)removeProgramsObject:(Program *)value;
- (void)addPrograms:(NSSet *)values;
- (void)removePrograms:(NSSet *)values;
- (void)addEmployeesObject:(Person *)value;
- (void)removeEmployeesObject:(Person *)value;
- (void)addEmployees:(NSSet *)values;
- (void)removeEmployees:(NSSet *)values;
@end
- (void)addEmployeesObject:(Person *)value {
NSSet *changedObjects = [[NSSet alloc] initWithObjects:&value count:1];
[self willChangeValueForKey:@"employees"
withSetMutation:NSKeyValueUnionSetMutation
usingObjects:changedObjects];
[[self primitiveEmployees] addObject:value];
[self didChangeValueForKey:@"employees"
withSetMutation:NSKeyValueUnionSetMutation
usingObjects:changedObjects];
self.lastPhotoDate = value.timeStamp;
}
//
//h公司
//CoreDataLibraryApp
//
//由Duncan Groenewald于2014年1月13日创建。
//版权所有(c)2014 OSSH私人有限公司。保留所有权利。
//
#进口
#进口
@班级人员、程序;
@接口公司:NSManagedObject
@属性(非原子,保留)NSString*名称;
@属性(非原子,保留)NSSet*程序;
@财产(非原子,保留)NSSet*员工;
@结束
@接口公司(CoreDataGeneratedAccessor)
-(void)addProgramsObject:(程序*)值;
-(void)removeProgramsObject:(程序*)值;
-(void)addPrograms:(NSSet*)值;
-(void)移除程序:(NSSet*)值;
-(作废)新增员工对象:(人*)价值;
-(作废)removeEmployeesObject:(人*)值;
-(void)addEmployees:(NSSet*)值;
-(void)removeEmployees:(NSSet*)值;
@结束
-(无效)addEmployeesObject:(人*)值{
NSSet*changedObjects=[[NSSet alloc]initWithObjects:&值计数:1];
[任性改变价值观Forkey:@“员工”
with setmutation:NSKeyValueUnionSetMutation
使用对象:changedObjects];
[[self primitiveEmployees]addObject:value];
[self didChangeValueForKey:@“员工”
with setmutation:NSKeyValueUnionSetMutation
使用对象:changedObjects];
self.lastprotodate=value.timeStamp;
}
您是否需要按摄影师及其时间戳进行排序。。ie)列出摄影师A和他的分类照片,然后列出摄影师B和他的分类照片..不,我需要按每个摄影师的最新照片排序。。。因此,如果摄影师A昨天上传了最后一张照片,而摄影师B今天上传了最后一张照片,我需要摄影师B,然后是摄影师A……如果摄影师B有10张照片,那么摄影师B的所有照片都将首先显示,然后是摄影师A的照片。我是对的。我只想根据最新上传的照片向摄影师展示……摄影师需要根据他们最新的照片进行分类