我又陷入另一个问题,但经过很长时间。使用NSSortDescriptor排序编号
这次我有数据库(核心数据),有一个属性numbers
其中包含像213879,123,4,345,56567等整数。
我需要按照类似于alphabetically
的顺序以升序编号顺序获取数据。
我在下面给出的方式这样做,
fetchRequest.sortDescriptors=[NSArray arrayWithObject:
[NSSortDescriptor sortDescriptorWithKey:@"numbers"
ascending:YES
selector:@selector(compare:)]];
,但不幸的是它仅仅比较每个数字的第1位,意味着如果有2个号码,如123
和321
,它将比较1 (first digit of first number)
与3 (first digit of second number)
和整理它们。
当到达时,它会混淆123
和111
(所有数字的第一个数字相同)。
如果我做错了什么或者SortDescriptor以这种方式工作? 我需要解决方案来按照升序123,133,213,451,516
同样对数字进行排序。
一点要记住 在实际属性numbers
将包含具有整数位数多于6 e.g 1234567,234568,235481
感谢所有谁帮助了我很多期待。
第一反应是,你是比较字符串,但现在你说这是NSNumber的,我建议你重新检查由[obj className]它是说NSNumber或NSString –
请告诉你数据模型。如果这是一个数字属性,它不会像这样工作。你的问题有一些缺失。 – jrturton