0

这是我的代码:

NSSortDescriptor *sortDescriptor;
sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"inspectionDateTime"
                                                 ascending:YES];


NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
sortedArray = [listAllProject sortedArrayUsingDescriptors:sortDescriptors];

[sortedArray sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2)
 {
     UDS_ProjectField *projectField1 = obj1;
     UDS_ProjectField *projectField2 = obj2;


     return [projectField1.inspectionDateTime compare:projectField2.inspectionDateTime];
     return  YES;
 }];

我使用它对数据库中具有字段名称“inspectionDateTime”类型 DATETIME 的表的数组进行排序,但结果不正确。

这是结果

15/2/12 15/1/12 12/3/12

但预期结果是 12/3/12 15/2/12 15/1/12

所以问题是 NSSortDescriptor 可以对 DateTime 类型进行排序,如果不能,请告诉我另一种方式

4

2 回答 2

0

尝试这个

NSArray *sortedArray = [listAllProject sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2)
 {
     UDS_ProjectField *projectField1 = obj1;
     UDS_ProjectField *projectField2 = obj2;


     return [projectField1.inspectionDateTime compare:projectField2.inspectionDateTime];
     return  YES;
 }];

有关更多信息,您可以在此处阅读文档

于 2013-07-18T04:23:36.710 回答
0

NSSortDescriptor 可用于日期排序,我使用了以下代码,它对我有用:

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey::@"inspectionDateTime"
ascending:YES selector:@selector(compare:)];
[listAllProject sortUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];
于 2013-07-18T04:20:39.727 回答