【问题标题】:NSFetchedResultsController given section name find the index of that sectionNSFetchedResultsController 给定节名查找该节的索引
【发布时间】:2013-12-22 07:11:33
【问题描述】:

我有一个包含多个部分的 NSFetchedResultsController。我的应用程序保证部分名称是唯一的。现在给定一个 NSString 我想知道它是否是任何部分的名称。如果是这样,请将匹配部分的部分编号返回给我。

天真的方法是迭代 self.fetchedResultsController.sections 并将节名称与给定的字符串进行比较。

我想知道 sectionForSectionIndexTitle:atIndex 是否可以更好地解决这个问题。 以下代码崩溃:

  int temp = [self.fetchedResultsController sectionForSectionIndexTitle:@"A-Section-Name" atIndex:0];

找到名称与输入字符串匹配的节的节号的正确方法是什么?

谢谢!

二本

【问题讨论】:

    标签: ios uitableview nsfetchedresultscontroller


    【解决方案1】:

    您使用的方法是用于部分 index 标题(显示在整个表格右侧的那些),而不是用于部分标题。您必须使用sections 属性,或者自己缓存章节标题,但这可能不值得。我会做类似的事情:

    NSUInteger sectionIndex = [[self.fetchedResultsController.sections valueForKey:@"name"] indexOfObject:sectionName];
    

    其中sectionName 是传入的名称。这会将sectionIndex 设置为适当的索引,如果该部分不存在,则设置NSNotFound

    在数组上调用valueForKey: 会返回一个数组,该数组包含数组中每个项上该键的值。它经常被忽视并且非常有用。

    这似乎比任何缓存解决方案都更简单,因为您不需要使缓存保持最新。如果您没有在循环中多次调用它,那应该没问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-27
      • 1970-01-01
      • 2014-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多