【发布时间】:2012-12-02 04:38:33
【问题描述】:
我又陷入了另一个问题,但过了很长时间。
这次我有一个数据库(核心数据),其属性为numbers,其中包含整数,如 213879,123,4,345,56567 等。
我需要按类似于alphabetically 顺序的升序获取数据。
我正在按照下面给出的方式这样做,
fetchRequest.sortDescriptors=[NSArray arrayWithObject:
[NSSortDescriptor sortDescriptorWithKey:@"numbers"
ascending:YES
selector:@selector(compare:)]];
但不幸的是,它只比较每个数字的第一个数字,这意味着如果有两个数字,如 123 和 321,它将比较 1 (first digit of first number) 和 3 (first digit of second number) 并对它们进行排序。
当出现123 和111(所有数字的第一位数字相同)时,我们会感到困惑。
如果我做错了什么或 SortDescriptor 以这种方式工作?
我需要同样的解决方案以升序排列数字123,133,213,451,516。
要记住的事情
实际上,numbers 属性将包含位数超过 6 的整数。例如 1234567,234568,235481
感谢所有在期待中帮助我的人。
【问题讨论】:
-
第一反应是你在比较Strings,现在你说是NSNumber,我建议你通过[obj className]重新检查是NSNumber还是NSString
-
请显示数据模型。如果这是一个数字属性,它就不会像这样工作。您的问题中缺少某些内容。
标签: objective-c core-data ios6 nsnumber nssortdescriptor