繁体   English   中英

NSFetchedResultsController给定节名称,找到该节的索引

[英]NSFetchedResultsController given section name find the index of that section

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

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

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

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

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

谢谢!

厄尔本

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM