问题标签 [nssortdescriptor]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2963 浏览

core-data - NSFetchResultsController + sectionNameKeyPath + 部分顺序

我在两个实体之间有一对多的实体关系:

属性和关系:

我使用获取结果控制器来显示结果。这是我的获取结果控制器的实现:

现在,例如,如果我在持久性存储中有以下数据:

注意:昨天和今天是 NSDate 格式。

然后我应该按以下顺序(完全正确)获取部分和行:

但是,排序不是这样工作的。我以正确的顺序获取行,但这些部分没有排序!我希望 sortDescriptorPDate 正在做他的工作。我错过了什么?期待中的感谢。

0 投票
1 回答
2435 浏览

objective-c - 使用类别和核心数据进行自定义排序 - 框架是否支持?

我正在为 iPhone iOS 4.0 开发,并且我有一个使用 Core Data 存储的生日对象(日期+名称)列表。我想使用 NSFetchedResultsController 来检索按每个生日对象的下一个生日日期排序的列表。为此,我需要为排序描述符定义自己的逻辑。

我尝试使用:

WherecompareNextBirthday:是在我在 NSDate 类上创建的类别中定义的。

但是当我尝试获取数据时,出现以下错误:“不支持的 NSSortDescriptor 选择器:compareNextBirthday:”

我花了几个小时试图弄清楚这一点,但没有运气...... Core Data 是否支持这种自定义排序?我真的需要进行内存排序吗?

0 投票
2 回答
976 浏览

core-data - COMPILED Core Data Managed Object Model:从它及其对应的数据库中获取最大的信息

我是 Objective-C 的新手;而且我在我的书籍或互联网上找不到任何解决方案。

我的问题:在没有源代码的情况下使用已编译的 .mom 和 SQLite db 的最有效和最快的方法是什么?

详细信息: 我正在尝试将我的小应用程序连接到另一个应用程序的数据库并使用(只读)其部分数据。但这项任务很困难,因为该应用程序没有 SDK。

该应用程序有一个已编译的 .mom 文件和一个 SQLite 数据库。

我成功地以编程方式(不使用 IB)使用 .mom 连接到数据库,并且可以设法获取实体,将数据填充到我重新创建的对象中等。但我每一步都在猜测、试验和错误。因此,开发需要大量时间并且容易出错。剖析最困难的任务是通过中间表建立对多关系。

例如:实体“书籍”与“作者”有关系。由于作者的顺序很重要,因此有一个中间表“authorsNumbered”,其中包含以下字段:数字、作者、书籍;并且“数字”字段确定作者的确切顺序,因为它们应该出现在任何地方(重要!)

我终于设法使用 NSSortDescriptor 创建了一个有序的作者数组,但我花了整整一周的时间才找到并猜测如何去做!

您会建议更有效的方法来处理已编译的 .mom 而不是我使用的方法吗?

谢谢

0 投票
1 回答
455 浏览

iphone - 一些排序问题(Core Data 初学者)

也许有一个简单的解决方案,但我对此感到头疼,我对所有这些核心数据的东西都很陌生:

我有一个带有“索引”属性的 BankAccount 类/实体,用于排序,以及与 Transaction 类/实体的“交易”对多关系。这个交易实体有一个“日期”属性,我也想用它来排序。

这很好用,并为我提供了按“索引”很好地排序的 BankAccount 对象。但是,每个 BankAccount 对象都包含一个 NSSet “事务”,当然,它根本没有排序。我怎样才能让这些交易按“日期”属性排序,这可能在同一个获取请求中吗?

提前谢谢了。

0 投票
1 回答
718 浏览

cocoa - How to set indicator image on column with multiple sort descriptors?

Code above doesn't set a triangle sorting image. I'm setting multiple sorting descriptors, but after changing it to a single one, it starts to display correct image in column header. In both cases, currentImage shows me that correct image is set (the same for descending order):

Changing order of actions in above method and sending reloadData to my tableView, had no effect on results.

It seems to me that setIndicatorImage works as expected, but somehow image is not being displayed in the header, or at least is not visible.

What am I missing here?

EDIT

Code is used to put a subclass of NSViewController in the main view of app's window by:

0 投票
2 回答
369 浏览

nssortdescriptor - 使用描述符数组比较 2 个对象

是否有使用 NSSortDescriptor 数组比较两个对象并返回 NSComparisonResult 的函数?(将它们放在数组中不会识别相等性。)

0 投票
1 回答
1312 浏览

iphone - 如何将排序描述符和谓词与核心数据可转换字段一起使用?

我有一个我写的应用程序,它曾经工作得很好。现在有一个新要求,即所有数据都需要加密,因此我通过使所有核心数据字段类型可转换并为每种数据类型编写自定义转换器来实现加密,这些转换器在从核心数据存储。

加密工作正常,我可以看到所有数据。问题是排序似乎被破坏了,任何甚至稍微复杂的谓词(包括子查询的谓词)也是如此。

我猜想在它们通过转换器发送之前对值进行排序(即,对加密值进行排序)。有没有办法解决这个问题?我想我可以尝试使用排序描述符并指定我自己的选择器来进行比较并首先显式解密这些值。如果可行,我会在这里发布。

但是,谓词情况是一个更大的问题。奇怪的是,它似乎大部分都可以工作,但是当我进行子查询时失败了(这就像一个关系中两个对象之间的连接)。使用可转换值和谓词时是否存在已知问题,或者我的转换器中有错误?

下面是一个不再起作用的谓词示例:

谓词在与 AppuserMessages 具有一对多关系的 Messages 对象上执行。这个谓词应该返回所有没有被删除并且至少有一个 appuserMessage 的消息,其中 recAppUserID 是 appuserid 并且 isTrash 是 false。它曾经工作,但现在什么也没返回。

0 投票
1 回答
668 浏览

objective-c - 我应该如何修复此代码?

我正在尝试对一组人员对象进行排序。类看起来像这样。

我有一个用这些对象填充的 NSMutableArray。我想按每个人对象的名称对这个数组进行排序。

这是我尝试过的代码。

它不起作用。怎么改才能工作?

0 投票
2 回答
6001 浏览

iphone - 核心数据 - 分组

我正在尝试对 Core Data 返回的结果进行分组。我读到您需要将“SortDescriptors”与选择器一起使用,但我似乎无法让它工作?

我正在尝试返回分组的“唯一”名称值?

http://developer.apple.com/library/ios/#documentation/cocoa/Conceptual/SortDescriptors/Concepts/Creating.html

0 投票
1 回答
2989 浏览

iphone - 使用 NSFetchedResultsController 对多对关系进行排序

我正在尝试NSFetchedResultsController在我的应用程序中使用,但对我的数据进行排序时遇到问题。尝试使用比实体低两级的关系对结果进行排序时,出现以下错误:

*由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“此处不允许使用多对多键”

我的数据模型是这样设置的:

项目 <<---> 类别 <--->> 排序顺序 <<---> 存储

换句话说:每个项目都属于一个类别。对于包含特定类别的每个商店,类别可以有不同的排序顺序。

因此,我正在创建一个获取请求以查找某个商店的所有商品,并希望使用类别名称作为部分来呈现结果,并按排序顺序进行排序。

当我执行提取(下面的最后一行)时,出现上述错误。

如果我将排序更改为类别名称,它会起作用。

如何NSSortDescriptor按排序顺序排序?

更新:所以这似乎是不可能的。我得到了一个创建瞬态属性并对其进行排序的建议,但Apple 文档明确指出

您无法使用基于瞬态属性的谓词进行获取

我的结论是我不能开箱即用 NSFetchedResultsController。我需要访问 NSFetchResultsController 给我的对象数组并在内存中排序,或者设置我自己的获取请求并跳过 NSFetchedResultsController。