Core data 如何在iOS中对日期参数进行排序?

Core data 如何在iOS中对日期参数进行排序?,core-data,nsdate,Core Data,Nsdate,我正在从数据库(coredata)中获取数据并尝试对日期(startDate)进行排序。最初我的日期是以历元格式(如14277366001427736611等)表示的,我正在转换为NSDate格式并尝试进行排序,但排序过程中出现崩溃。我不知道我在哪里出错。这是我的代码。谢谢 AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; NSFetchRequest *fetchRe

我正在从数据库(coredata)中获取数据并尝试对日期(startDate)进行排序。最初我的日期是以历元格式(如14277366001427736611等)表示的,我正在转换为NSDate格式并尝试进行排序,但排序过程中出现崩溃。我不知道我在哪里出错。这是我的代码。谢谢

AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Sessions"];
fetchRequest.predicate= [NSPredicate predicateWithFormat:@“element == %@", element];

NSArray *storedSessions = [appDelegate.managedObjectContext executeFetchRequest:fetchRequest error:nil];

NSArray *sortedArray=[[NSMutableArray alloc]init];

if (storedSessions.count>0)
{
for (Sessions * listData in storedSessions)
{
    double time=[listData.startDate doubleValue];

    NSDate *returnDate = [NSDate dateWithTimeIntervalSince1970:time];
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"dd-MM-yyyy h:mm aa"];
    NSString *dateStr1=[dateFormatter stringFromDate:returnDate];

    sortedArray = [storedSessions sortedArrayUsingComparator:^NSComparisonResult(NSString *dateStr1, NSString *obj2) {
        NSDateFormatter *dateFormater = [[NSDateFormatter alloc] init];
        [dateFormater setDateFormat:@"dd-MM-yyyy h:mma"];
        NSDate *date1 = [dateFormater dateFromString:dateStr1];
        NSDate *date2 = [dateFormater dateFromString:obj2];
        NSComparisonResult compareResult = [date1 compare:date2];
        switch (compareResult)
        {
            case NSOrderedAscending:
                return NSOrderedDescending;
                break;
            case NSOrderedDescending:
                return NSOrderedAscending;
                break;
            default:
                return compareResult;
                break;
        }
    }];

  }

NSLog(@"%@",sortedArray);}

你工作太辛苦了

请查看
NSSortDescriptor
。构建一个以存储历元秒数的整数字段进行排序,并在获取请求中传递。您将返回一个按历元秒排序的数组,按您喜欢的升序或降序排列

而且,你工作太辛苦了。您可以将
NSDate
作为
Date
类型的属性直接存储到核心数据中