基于核心数据属性的 UITableView 部分

Posted

技术标签:

【中文标题】基于核心数据属性的 UITableView 部分【英文标题】:UITableView Sections based on Core Data attribute 【发布时间】:2012-05-25 18:47:39 【问题描述】:

在我的应用程序中,我有一个由 Core Data 填充的 UITableView,目前是一个名为“name”的字符串。我希望能够将这个 tableview 分成 3 个部分,可以命名为 0、1 和 2,或 1、2 和 3。名称并不重要。我目前真的不知道如何实现这一点。我的数据模型中有一个名为“term”的新属性,这是我希望这些部分所依据的。这最好是整数吗?

我是 ios 开发的新手,所以如果有人知道怎么做,我将不胜感激。

这是我当前使用“名称”属性填充表格视图的排序代码。

- (void)setupFetchedResultsController

    //1 - Entity
    NSString *entityName = @"Task"; // Put your entity name here
    NSLog(@"Setting up a Fetched Results Controller for the Entity named %@", entityName);

    //2 Request
    NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:entityName];

    // 3 - Filter
    //request.predicate = [NSPredicate predicateWithFormat:@"Task.name = name"];

    // 4 - Sort
    request.sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"name"

谢谢大家!

【问题讨论】:

【参考方案1】:

我不明白你是否使用NSFetchedResultsController

在第一种情况下(您使用它),您可以利用它将term 设置为划分部分的属性。当您使用– initWithFetchRequest:managedObjectContext:sectionNameKeyPath:cacheName: 创建NSFetchedResultsController 时,您可以将@"term" 作为sectionNameKeyPath 的参数传递。

在第二种情况下,我真的建议在处理UITableViews 时处理NSFetchedResultsControllers。设置NSFetchedResultsController 确实是一个示例,因为您需要创建它并将其传递给NSFetchRequest。你创建的没问题。

有关更多信息,我建议阅读core-data-tutorial-how-to-use-nsfetchedresultscontroller 和NSFetchedResultsController class reference。

希望对你有帮助。

【讨论】:

我正在使用 NSFecthedResultsController。非常感谢您的意见。我会试试这个。 @user1247573 不客气...如果您认为正确,请标记为答案。干杯。

以上是关于基于核心数据属性的 UITableView 部分的主要内容,如果未能解决你的问题,请参考以下文章

iPhone 核心数据:具有不同属性和字母部分的 NSFetchRequest

iOS - 如何刷新/更新核心数据瞬态属性?

使用 fetchedResultsController(核心数据)对部分进行排序以填充我的 UITableView

使用具有不同单元格数的部分的 UITableView 的核心数据

iOS - 将单元格添加到带有核心数据和 NSFetchedResultsController 的空 UITableView 部分

带有 A-Z 部分的核心数据