问题标签 [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 投票
1 回答
220 浏览

cocoa - Cocoa NSSortDescriptors 属于模型还是控制器?

子类会NSSortDescriptor放在模型层还是控制器层?

由于它们主要用于显示和业务逻辑,因此将它们放在 Controller 层似乎是有意义的。但模型应该知道如何对自己进行排序也是有道理的。

0 投票
1 回答
1612 浏览

iphone - 你如何使用 NSSortDescriptor 对 NSNumber 进行排序?

我无法使用 NSSortDescriptor 对 NSNumber 进行排序。无论出于何种原因,它都不会按正确的顺序排序。我究竟做错了什么?

它在 xcdataModel 中定义为 Int32 并由此类调用进行排序。

编辑:是的,在寒冷的日子里,这需要更多的解释。我将尝试解释该项目。这是一个 CoreData 应用程序,值“容量”和“可用性”源自使用 SAX 解析 XML 文件并将它们附加到被定义为字符串的托管对象模型,最初它们在 XML 中应该是数字。

然后将它们定义在一个已经进行上述计算并附加到相同对象模型的类中(如果上面的代码是正确的,那么这可能就是问题所在?)。所有这些都是为了获得我想用来对 TableView 进行排序的百分比值。(顺便说一句,我意识到他们需要交换,哎呀)第二段代码是使用 NSFetchResultsController 和 ManagedObjectContext 发生这种情况的地方。我知道这一点有效,因为我还通过设置为 if selectedSegmentIndex == 0 等的其他属性对该列表进行排序。它们都正确排序。

我希望这更有意义。

0 投票
1 回答
601 浏览

cocoa - 是否可以在 Cocoa Touch 中使用包含本地化字符串元素和正确数字的自定义对象对数组进行排序?

假设将具有 Name 和 accountNo 的类 Account 都作为 NSStrings。我想按名称或按帐户号对帐户数组进行排序。排序应该本地化。

如果我按照指南中的描述使用 NSSortDescriptors,我可以选择将 localCaseInsensitiveCompare :传递给数组,但数字排序不正确(100 在 99 之前排序)。我还没有找到触发选项NSNumericSearch进行搜索的方法。这意味着我必须在链中的每个类中使用sortedArrayUsingFunctions和函数。它允许我使用正确的数值进行排序,但这不是本地化的并且非常实用。

如果您对这两个问题都有答案(SortDescriptors 具有数字正确排序或 sortFunctions 具有本地化和数字正确排序)请提供给我

谢谢

0 投票
2 回答
547 浏览

iphone - 通过自定义对象中包含的字典对自定义对象数组进行排序:如何?

我有一组自定义对象。对象包括字典。像这样的东西:

我想按字典中的一个对象排序:

dataModel 被加载到一个 NSArray 中。我现在想按字典中的 @"Name" 键排序。这是 NSSortDescriptor 可以处理的吗?基本排序工作正常,只是还没有弄清楚这个......

0 投票
4 回答
8620 浏览

iphone - iPhone CoreData - 如何获取托管对象,并忽略大小写对它们进行排序?

有谁知道如何获取一些按字母顺序排序但忽略大小写的结果?

0 投票
2 回答
421 浏览

objective-c - 如何按字典中的对象对模型对象进行排序?

我有一个从名为 column 的 NSObject 扩展的模型对象。Column 有两个字段,属性和数据。Properties 是一个 NSDictionary,它存储任意键/值对,而 data 是一个数组。

列在数组中,我需要按我知道将始终在属性中的值对它们进行排序,该值带有键 ordinal_position。

我正在使用以下代码进行排序,但它总是失败,因为模型对象中没有“ordinal_position”,仅在模型对象的属性中:

如何告诉 NSSortDescriptor 在模型对象的字典中查找属性?

0 投票
2 回答
7173 浏览

iphone - 核心数据表视图部分使用 NSSortDescriptor 按工作日排序

我目前正在尝试将我的对象数组按天顺序排序,以便它们可以按正确的顺序分组,即星期一、星期二、星期三,然后按开始时间。

唯一的问题是我无法弄清楚如何做到这一点,我的代码目前看起来像这样: 按字母顺序然后按时间排序:

请帮忙!

0 投票
6 回答
15678 浏览

cocoa - 帮助跨两个属性对 NSArray 进行排序(使用 NSSortDescriptor?)

我有点 NSSortDescriptor n00b。不过,我认为它是我需要做的正确工具:

我有一个由带有键的对象组成的 NSArray,例如“名称”和“时间”。这里没有用语言表达它,而是一个例子:

因此这些值按“时间”排序并按“名称”分组。A 排在第一位,因为他的时间价值最小,而 A 的所有价值都一个接一个。然后是 C,在他的所有值中,他的时间值第二小。我已经指出了决定名称排序方式的值;在每个名称组中,按时间排序。

如何以最有效的方式从输入到输出 NSArray?(CPU 和内存方面,不一定是代码方面。)我将如何为此构造 NSSortDescriptors,或使用任何其他方法?我不想自己动手,除非这是最有效的方式。

0 投票
1 回答
1392 浏览

iphone - 具有本地化排序的 iPhone Fetch Request

我正在尝试从核心数据模型中获取排序的本地化数据。我的代码:

但是,当我得到对象时,它们仍然按原始值(非本地化数据)排序。

我做错了什么?

0 投票
3 回答
3436 浏览

iphone - NSFetchRequestController 的 NSSortDescriptor 在排序属性的值更改时导致崩溃

我有一个具有许多属性的核心数据实体,包括数量(浮点数)、类别总计(浮点数)和类别(字符串)

初始 ViewController 使用 FethchedResultsController 来检索实体,并根据类别对它们进行排序,然后是 categoryTotal。到目前为止没有问题。

在选择一行时(tableView:didSelectRowAtIndexPath),另一个视图控制器被加载,允许编辑所选实体的金额字段。

在返回第一个视图之前,categoryTotal 被新的“金额”更新。当返回到第一个视图控制器时,问题就来了,应用程序炸弹

严重的应用程序错误。在核心数据更改处理期间捕获到异常:无效更新:第 0 节中的行数无效。更新后现有节中包含的行数 (1) 必须等于更新前该节中包含的行数(1),加上或减去从该部分插入或删除的行数(0 插入,1 删除)。with userInfo (null) 程序接收信号:“EXC_BAD_ACCESS”。

这似乎是由 NSSortDescriptor *sortByTotals = [[NSSortDescriptor alloc] initWithKey:@"categoryTotal" ascending:sortOrder]; 如果我删除它,一切都会按预期工作,但显然没有我想要的排序。

我猜这与由于 categoryTotal 更改(删除/插入)而导致的排序顺序更改有关,但无法解决此问题。我已经验证了在第二个视图中正确地修改了值,因此它似乎是 fetchedResultsController 被混淆了。如果 categoryAmount 更改为不改变排序顺序的,则不会产生错误

我没有在物理上更改(即删除)fetchedResultsController 返回的项目数......我能找到的唯一其他问题似乎会产生此错误

任何想法都将受到欢迎

谢谢, AJ