首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >按日期对NSSortDescriptor进行核心数据排序

按日期对NSSortDescriptor进行核心数据排序
EN

Stack Overflow用户
提问于 2014-02-04 03:15:41
回答 1查看 1.3K关注 0票数 0

对于使用NSSortDescriptor对数据进行排序的问题,我已经得到了答案。我正在开发核心数据应用程序,让我说,我有一个摄影师和照片实体(一对多),一个摄影师可以有很多照片。我需要做的是能够显示摄影师的名单,根据他们的最新照片排序。所以如果摄影师A昨天上传了照片,摄影师B今天上传了照片,我需要在我的TableView上展示这个

摄影师B摄影师A

我使用下面的代码对摄影师的timeStamp进行排序,我在照片中也有相同的timeStamp属性。我如何根据摄影师的拍照时间戳对他们进行分类?

我不能使用@"Photos.timeStamp“,因为照片是NSSet,可能有多张照片.

代码语言:javascript
运行
复制
- (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;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-04 05:54:53

Photographer上创建一个名为lastPhotoDate的附加属性,并通过重写摄影师子类上的addPhotosObject方法来设置新的Photo

下面是一个例子

代码语言:javascript
运行
复制
//
//  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;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21542317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档