使用Transient sectionNameKeyPath过滤NSFetchedResultsController的部分

时间:2014-06-09 13:18:51

标签: ios objective-c core-data nsfetchedresultscontroller transient

我试图根据用户输入限制显示的部分。

我的应用程序的这一部分类似于Apple的Custom Section Titles示例。 Apple的示例按月和年显示部分。

我想通过用户选择的输入来过滤这些结果。

例如:用户选择他只想查看5月份的数据。 在FRC上使用AND谓词是不可能的,因为我使用了瞬态属性。

我是否应该隐藏与@&#34不相等的部分;可能是2014年和#34;在

 - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
例如,

方法还是有更正确的方法吗?

也许每个月只有一个新的瞬态属性才会返回其各自的月份?

我觉得我应该遵循一条指导方针:)

1 个答案:

答案 0 :(得分:0)

  

我是否应该在

中隐藏不等于@“may 2014”的部分

在这个实现中(Apple的例子),这是一种最好的方法。 如果您使用与示例中相同的实现:

NSInteger numericSection = [[theSection name] integerValue];
NSInteger year = numericSection / 1000;
NSInteger month = numericSection - (year * 1000);

NSDateComponents *dateComponents = [[NSDateComponents alloc] init];
dateComponents.year = year;
dateComponents.month = month;
NSDate *date = [[NSCalendar currentCalendar] dateFromComponents:dateComponents];

NSString *titleString = [formatter stringFromDate:date];

因此,您可以检查字符串是否等于@“may 2014”,或者只是将用户选择的月份数与计算的月份变量进行比较,如果它们相同 - 请使用此部分。其他视图跳过部分。