The*_*imp 4 iphone objective-c nsdate
我的代码存在很多问题,这些问题决定了数组中最早的日期和最新日期.这是我正在使用的代码:
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;
}
Run Code Online (Sandbox Code Playgroud)
请有人帮我解决我出错的地方吗?
OdN*_*iry 11
您也可以排序NSArray与NSDates使用方法:
array = [array sortedArrayUsingSelector:@selector(compare:)];
Run Code Online (Sandbox Code Playgroud)
然后[array firstObject]将是第一个日期(例如1970-01-01T00:00:00),最后一个对象:[array lastObject]将是最后日期:(例如2011-01-12T00:00:00)
当然你在陈述中设置startDate和endDate错误的方式else 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;
}
Run Code Online (Sandbox Code Playgroud)