这可能是一个重复的问题,但我有一个奇怪的问题,所以我把它粘贴在堆栈上。
按日期和时间排序NSArray
时出现问题。
例如,我在数据库文件中有以下字段: -
id Name Date
1 ABC 2015-01-29 16:36:31
2 AAA 2015-01-29 16:36:31
3 BBB 2015-01-29 16:36:31
4 CCC 2015-01-29 16:36:31
5 DDD 2015-01-29 16:36:31
注意: - 日期的数据类型是 sqlite数据库中的时间戳,我在获取数据时将其存储为NSDate。
现在,我正在通过NSArray
对这些数据进行排序NSSortDescriptor *sortDesc = [[NSSortDescriptor alloc]initWithKey:kContentEditedDate ascending:NO];
NSArray *sortDescAry = [NSArray arrayWithObject:sortDesc];
contentData = [contentData sortedArrayUsingDescriptors:sortDescAry];
上面的代码只显示降序,即使每一行都有相同的日期。
之后我也尝试[NSArray sortedArrayUsingComparator:]
进行排序,它也显示与第一个选项相同的结果。
我尝试编辑数据库中最后一行的日期并运行查询,如下所示:
SELECT RelImgName,EditedDate FROM "tableName" ORDER BY "EditedDate" DESC;
它给了我正确的输出。
如下:
id Name Date
5 DDD 2015-02-02 11:05:32
1 ABC 2015-01-29 16:36:31
2 AAA 2015-01-29 16:36:31
3 BBB 2015-01-29 16:36:31
4 CCC 2015-01-29 16:36:31
但是当我使用NSSortDescriptor执行此操作时,它只显示降序。
我希望输出与NSSortDescriptor一样。
现在我希望你们都能理解我的问题。
我搜索了很多,但没有得到任何适当的解决方案。