我的代码在确定数组中最早的日期和最晚的日期时遇到很多问题。这是我正在使用的代码:

NSDate *startDate = nil; // Earliest date
NSDate *endDate = nil; // Latest date

for (id entry in myArray)
{
    NSDate *date = [entry objectForKey:kDate];

    if (startDate == nil && endDate == nil)
    {
        startDate = date;
        endDate = date;
    }
    else if ([date compare:endDate] == NSOrderedAscending)
    {
        startDate = date;
    }
    else if ([date compare:startDate] == NSOrderedDescending)
    {
        endDate = date;
    }

    date = nil;
}

请有人可以帮助我找出我要去哪里哪里吗?

最佳答案

您确定在startDate语句中以错误的方式设置了endDateelse if吗?您不想要这样:

NSDate *startDate = nil; // Earliest date
NSDate *endDate = nil; // Latest date

for (id entry in myArray)
{
    NSDate *date = [entry objectForKey:kDate];

    if (startDate == nil && endDate == nil)
    {
        startDate = date;
        endDate = date;
    }
    if ([date compare:startDate] == NSOrderedAscending)
    {
        startDate = date;
    }
    if ([date compare:endDate] == NSOrderedDescending)
    {
        endDate = date;
    }

    date = nil;
}

10-08 09:31
查看更多