gpt4 book ai didi

iphone - 按日期排序 NSFetchRequest,然后按字母顺序排序

转载 作者:行者123 更新时间:2023-12-03 18:27:29 25 4
gpt4 key购买 nike

我想先按日期订购 NSFetchRequest,然后根据名称匹配当天的订单。我使用 UIDatePicker 获取日期并使用 Core Data 保存它

[self.managedObject setValue:self.datePicker.date forKey:self.keypath];

并对 NSFetchRequest 进行排序,如下所示:

NSSortDescriptor *sortDescriptor1 = [[NSSortDescriptor alloc] initWithKey:@"day" ascending:NO];
NSSortDescriptor *sortDescriptor2 = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:NO];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor1, sortDescriptor2, nil];
[fetchRequest setSortDescriptors:sortDescriptors];

现在我的问题是它只能按日期排序,而不是按名称排序,因为 UIDatePicker 存储在核心数据中的日期还有小时。因此,即使是同一天,也不会在同一天按“名称”排序,因为时间不同。那么,如何在核心数据中仅保存日期 mm/dd/yyyy,而不是 UIDatePicker 中的小时?

或者您认为还有其他解决方案吗?

最佳答案

使用日期排序的比较器 block 将日期转换为格式为 yyyyMMdd 的字符串。

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyyMMdd"];
NSSortDescriptor *sortDescriptor1 = [NSSortDescriptor sortDescriptorWithKey:@"date" ascending:NO comparator:^NSComparisonResult(NSDate *obj1, NSDate *obj2) {
return [[formatter stringFromDate:obj1] compare:[formatter stringFromDate:obj2]];
}];
NSSortDescriptor *sortDescriptor2 = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:NO];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor1, sortDescriptor2, nil];
[fetchRequest setSortDescriptors:sortDescriptors];

关于iphone - 按日期排序 NSFetchRequest,然后按字母顺序排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9182958/

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