目标C语言 排序NSFetchRequest的结果,对象实现了compare:



我有一个实现compare:消息的NSManagedObject子类。我想检索这些对象并使用此比较方法对它们进行排序,但显然我必须为NSSortDescriptor提供key

我不想提供任何key,因为对象本身已经知道如何比较自己。

如果我提供nil作为键的键:

r.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:nil
                                                        ascending:YES                                                        selector:@selector(compare:)]];

我得到以下错误:

failed: ((62) = ([[self.]Lib tags [count])) failed:抛出"keypath #self在实体中找不到"

我怎么能确保NSSortDescriptor忽略任何key,只是使用compare:代替?

您是否尝试提供密钥@"self" ?

问题是我使用的是SQLite存储,你只能在依赖于SQLite存储的NSFetchRequest中使用建模属性。

这是非常令人困惑的,因为它在我的测试中工作(我使用内存存储),并在应用程序本身惨败。一个更好的错误描述可以节省很多时间。

最新更新