我有一个类似的数组
<__NSArrayI 0xa8434a0>(
{
From = "10:01AM";
Title = Discuss;
To = "12:00AM";
},
{
From = "12:01AM";
Title = Discuss;
To = "02:00AM";
},
{
From = "5:01AM";
Title = Available;
To = "7:00AM";
},
{
From = "2:01AM";
Title = Discuss;
To = "5:00AM";
},
{
From = "7:01AM";
Title = Available;
To = "12:00pM";
}
)
如何使用 From & to 键按时间范围对该数组进行排序?
我试过如下:
但不是很好
sortedDatesArray = [[unsortedDatesArray sortedArrayUsingComparator: ^(id a, id b) {
NSDate *d1 = [NSDate dateWithString: s1];
NSDate *d2 = [NSDate dateWithString: s2];
return [d1 compare: d2];
}];
帮我解决这个问题。
最佳答案
NSArray *toSortArray = nil; /*The array you want to sort*/
NSArray *sortedArray = nil;
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"hh:mma"];
NSSortDescriptor *descriptorTo = [NSSortDescriptor sortDescriptorWithKey:@"To" ascending:YES comparator:^NSComparisonResult(id obj1, id obj2) {
NSDate *firstDate = [formatter dateFromString:obj1];
NSDate *secondDate = [formatter dateFromString:obj2];
return [firstDate compare:secondDate];
}];
NSSortDescriptor *descriptorFrom = [NSSortDescriptor sortDescriptorWithKey:@"From" ascending:YES comparator:^NSComparisonResult(id obj1, id obj2) {
NSDate *firstDate = [formatter dateFromString:obj1];
NSDate *secondDate = [formatter dateFromString:obj2];
return [firstDate compare:secondDate];
}];
sortedArray = [toSortArray sortedArrayUsingDescriptors:@[descriptorFrom, descriptorTo]];
我希望这能回答您的问题。 :)
关于ios - 在 Ios 中排序时间范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22479027/