想从core data里按一定的order取出数据,然后显示在table view上。在datamodel文件里定义了一个叫order_id(integer 64)的attribute来做这个排序。取数据时设置排序的代码如下:
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc]initWithKey:@"order_id" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
[sortDescriptor release];
[sortDescriptors release];
但发现取出的数据并不是按照指定顺序来排列的,比如我插入一些数据,给它们设置order_id分别为1,2,3,4,5;
希望它们显示的时候也按照这个顺序来呈现,但现在排序乱了,于是table view里内容显示的顺序就乱了。我发现我原来的order_id数据分别是1,2,3,4,5;但插入core data后,我在把它打印出来就变成下面这样了:
100753152,
101028112,
100808672,
101050848,
101052880并不是从小到大的数据,这样取数据的时候如果按order_id来做排序就不对了。我又用了其它的字段来测试这样的排序,如:string类型的display_name,测试结果排序是正确的。
是不是core data里NSNumber类型的数据排序会有问题吗?求指点。谢谢
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc]initWithKey:@"order_id" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
[sortDescriptor release];
[sortDescriptors release];
但发现取出的数据并不是按照指定顺序来排列的,比如我插入一些数据,给它们设置order_id分别为1,2,3,4,5;
希望它们显示的时候也按照这个顺序来呈现,但现在排序乱了,于是table view里内容显示的顺序就乱了。我发现我原来的order_id数据分别是1,2,3,4,5;但插入core data后,我在把它打印出来就变成下面这样了:
100753152,
101028112,
100808672,
101050848,
101052880并不是从小到大的数据,这样取数据的时候如果按order_id来做排序就不对了。我又用了其它的字段来测试这样的排序,如:string类型的display_name,测试结果排序是正确的。
是不是core data里NSNumber类型的数据排序会有问题吗?求指点。谢谢
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货