【发布时间】:2023-03-14 01:34:02
【问题描述】:
我想先按日期订购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 存储在 Core Data 中的日期和小时。所以即使是同一天,也不会因为当天的时间不同而按“姓名”排序。
那么如何在核心数据中只保存日期 mm/dd/yyyy 而不是来自UIDatePicker 的时间?
或者你有什么其他的解决办法吗?
【问题讨论】:
-
您还需要时间信息吗?如果不是,您可以在设置核心数据对象的时间时将时间分量设置为 0。如果您需要它,您必须添加另一个属性,该属性使用不带时间组件的 NSDate 或 yyyymmdd 字符串。
标签: iphone sorting date uidatepicker nsfetchrequest