【发布时间】:2013-12-09 18:57:45
【问题描述】:
我有一个表格视图,它目前正在完美地搜索核心数据数据库的字符串属性。但是,它不是搜索日期。
我的日期是 NSDates,但使用 NSDateFormatter 作为字符串显示给用户。
我正在使用核心数据。
我当前在 fetchresultscontroller 中的谓词是这样的:
if ([self.timelineSearchBar.text length] > 0) {
NSPredicate *predName = [NSPredicate predicateWithFormat:@"ANY whoBy.name CONTAINS[c] %@", self.timelineSearchBar.text];
NSPredicate *predOccasion = [NSPredicate predicateWithFormat:@"ANY occasion.title CONTAINS[c] %@", self.timelineSearchBar.text];
NSPredicate *predDate = [NSPredicate predicateWithFormat:@"ANY dates.dateOfEvent CONTAINS[c] %@", self.timelineSearchBar.text];
NSPredicate *compPredicate = [NSCompoundPredicate orPredicateWithSubpredicates:@[predName, predOccasion, predDate]];
[fetchRequest setPredicate:compPredicate];
有了它,我可以搜索“名称”和“场合标题”。但是,我无法搜索日期。
日期格式为:
-(NSString *)sectionDateFormatter
{
// this can be fancier if you need a custom format or particular timezone:
return [NSDateFormatter localizedStringFromDate:self.dates.dateOfEvent
dateStyle:NSDateFormatterLongStyle
timeStyle:NSDateFormatterNoStyle];
}
但是,当我搜索任何日期时,它根本不显示。无论如何我也可以在这里搜索日期(无需创建另一个 fetchedResultsController 等)?
谢谢,欢迎提出任何想法!
编辑:包括我如何保存日期
NSCalendar *cal = [NSCalendar currentCalendar];
NSDateComponents *components = [cal
components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit
fromDate:self.datePicker.date];
NSDate *selectedDate = [cal dateFromComponents:components];
【问题讨论】:
标签: ios objective-c search core-data nspredicate