对于使用NSSortDescriptor对数据进行排序的问题,我已经得到了答案。我正在开发核心数据应用程序,让我说,我有一个摄影师和照片实体(一对多),一个摄影师可以有很多照片。我需要做的是能够显示摄影师的名单,根据他们的最新照片排序。所以如果摄影师A昨天上传了照片,摄影师B今天上传了照片,我需要在我的TableView上展示这个
摄影师B摄影师A
我使用下面的代码对摄影师的timeStamp进行排序,我在照片中也有相同的timeStamp属性。我如何根据摄影师的拍照时间戳对他们进行分类?
我不能使用@"Photos.timeStamp“,因为照片是NSSet,可能有多张照片.
- (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;
}
发布于 2014-02-04 05:54:53
在Photographer
上创建一个名为lastPhotoDate
的附加属性,并通过重写摄影师子类上的addPhotosObject
方法来设置新的Photo
。
下面是一个例子
//
// 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;
}
https://stackoverflow.com/questions/21542317
复制相似问题