gpt4 book ai didi

iphone - 使用内部对象实例变量的值对自定义对象数组进行排序

转载 作者:技术小花猫 更新时间:2023-10-29 10:41:17 29 4
gpt4 key购买 nike

(抱歉标题太长了)

我有一个自定义对象 Person,它又有一个 NSSet,它有几个名为 Appointment 的自定义对象。因此,一个人可以有多个约会。约会具有值 startTime 和 endTime。

这些是核心数据 NSMangagedObject 类。

@interface Person : NSManagedObject

@property (nonatomic, retain) NSString *personName;
@property (nonatomic, retain) NSSet *appointments;

// etc

@end


@interface Appointment : NSManagedObject

@property (nonatomic, retain) NSNumber * startSecond;
@property (nonatomic, retain) NSNumber * endSecond;

// etc

@end

我如何获得人员列表,按照他们的任何约会中最早开始的顺序?

最佳答案

您可以使用排序描述符和 KVC 集合运算符:

NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"appointments.@min.startSecond" ascending:YES];

例如,在 CoreData 获取中:

NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"Person"];

NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"appointments.@min.startSecond" ascending:YES];
[request setSortDescriptors:@[sortDescriptor]];

NSError *error = nil;
NSArray *sortedResults = [context executeFetchRequest:request error:&error];

或者只是对数组进行排序:

NSArray *people = @[...];
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"appointments.@min.startSecond" ascending:YES];

NSArray *sortedPeople = [people sortedArrayUsingDescriptors:@[sortDescriptor]];

有关 KVC 集合运算符的更多信息可以在 KVC Programming Guide 中找到.

关于iphone - 使用内部对象实例变量的值对自定义对象数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9062271/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com