【问题标题】:ios MagicalRecord sorting. Need a list of section headersios MagicalRecord 排序。需要部分标题列表
【发布时间】:2014-02-20 06:56:19
【问题描述】:

我有一个使用 MagicalRecord 访问的核心数据模型。我使用此代码来获取按类别排序和分组的表格视图:

frc = [ListActivity MR_fetchAllSortedBy:@"activityCategory,activityName"
                                  ascending:YES withPredicate:nil
                                    groupBy:@"activityCategory"
                                   delegate:nil];

生成的表格视图如下所示:

在另一个视图中,我使用相同的数据,但这次只需要一个节标题列表,由属性“activityCategory”表示。我以为这是一件简单的事情,但事实并非如此。这段代码,例如:

frc = [ListActivity MR_fetchAllSortedBy:@"activityCategory"
                              ascending:YES withPredicate:nil
                                groupBy:nil
                               delegate:nil];

产生这个:

相反,我想要的只是类别列表(单数),即在第一个示例中提供节标题的属性。我尝试了其他几种配置,但意识到我只是把东西扔到墙上看它是否会粘住。与框架一样出色的 MagicalRecord 的文档很少。

有人可以指点我的解决方案吗?

谢谢!

【问题讨论】:

    标签: ios uitableview magicalrecord


    【解决方案1】:

    我最好的猜测是,在触发 fetched results 控制器之前,您需要对 fetch 请求进行更多配置。 MagicalRecord 使用命名约定,如果您将 find 更改为 request,它将改为返回 NSFetchRequest 对象。因此,对于您的情况,您需要类似

    NSFetchRequest *request = [ListActivity MR_requestAllSortedBy:@"activityCategory" ascending:YES inContext:context];
    [request setResultType:NSDictionaryResultType];
    [request setReturnsDistinctResults:YES];
    frc = [[NSFetchedResultsController alloc] initWithFetchRequest:request
                                              managedObjectContext:context
                                                sectionNameKeyPath:nil
                                                         cacheName:nil];
    [frc MR_performFetch];
    

    【讨论】:

    • 感谢您的回复!我尝试了您的代码,添加了一个上下文,但得到了这个错误:“'NSFetchedResultsController' 没有可见的@interface 声明选择器'MR_performFetch'”我也找不到该选择器的任何快速帮助。我是否丢失了 MagicalRecord 的链接?
    • 可能该方法不是公开的,我引用的是最新的代码,但我知道该方法在那里;破解源码看看。
    • 该方法确实存在,但由于某种原因链接器没有找到它。或者也许还有另一个问题。我已经尝试清理它,检查构建阶段中列出的相关文件(NSManagedObject+MagicalRecord.m),确保在“-Prefix.pch”文件中导入“CoreData+MagicalRecord.h”并重新启动 Xcode。仍然得到错误。
    【解决方案2】:

    您可能需要考虑拥有一个ListActivityCategory 实体以及将类别存储为ListActivity 上的字符串

    这样你就可以在所有返回的 ListActivity 对象中获取那些而不是避风港来“唯一”

    【讨论】:

    • 我是 Core Data 和 MagicalRecord 的新手。您是否建议数据模型中的实体之间存在关系?如果是这样,听起来可行,但我从未这样做过。你能提供一个sn-p吗?
    • 如果你用谷歌搜索,我相信那里有很多很好的教程。
    • 我知道,Mike,我一直在 Lynda.com 上观看 Simon Allardice 的课程。目前,我正在尝试决定走哪条路——用 casademora 建议的方法纠正错误或创建一个新实体,这听起来也很有希望。当我清理它时,我会发布解决方案。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多