gpt4 book ai didi

ios - 核心数据 : Accessing an object used to mark sections in an NSFetchedResultsController

转载 作者:行者123 更新时间:2023-11-29 03:39:31 26 4
gpt4 key购买 nike

我有一个 NSFetchResultsController,它返回按部分排列的 ManagedObjects。这些部分是我的 Feed 对象共享的 Category 对象的 NSString name:

现在,在某些情况下,我想从以下部分获取 Category 本身:

  NSString *sortKey = @"category.name";
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Feed"];
NSSortDescriptor *sortDescriptorCategory = [NSSortDescriptor sortDescriptorWithKey:sortKey ascending:asc];

此刻,我这样做:

    Category *cat = ((Feed *)[[[self.fetchedResultsController sections][section] objects] objectAtIndex:0]).category;

恕我直言,这很丑陋。特别是因为它禁止我有空的部分,但是如果我创建新的部分并将现有 Feed 移至其中,则可能会发生这种情况。

所以我的问题是:如何访问定义 Feed 列表中的部分的 Category 对象?

另外,我如何有效地收集 NSSet 中所有部分的列表?

预先感谢您的帮助。

最佳答案

您检索节对象的方法没问题,您应该只包含健全性检查。

NSArray *feeds = [self.fetchedResultsController.sections[section] objects];
Feed *aFeed = [feeds anyObject];
return aFeed ? aFeed.category : nil;

作为 NSSet 的所有部分的列表:

[NSSet setWithArray:self.fetchedResultsController.sections];

如果你想在你的部分标题中广泛使用类别实体,也许最好更改你的设置:获取类别而不是提要,并更改 TableView 数据源方法以反射(reflect)此设置,例如

// number of rows for section
Category *category = self.fetchedResultsController.fetchedObjects[section];
return category.feeds.count;

您需要引入一个排序标准来将 feeds 集更改为一个部分行的数组。

关于ios - 核心数据 : Accessing an object used to mark sections in an NSFetchedResultsController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18643339/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com