我有一个包含多个词典的数组,其中有一个存储小时和分钟的字段,如“14:22”。
如何按时间过滤数组?例如我希望所有字段都在那个字段有时间的地方> 01:00和时间< 18:00
答案 0 :(得分:2)
这样的事情可以满足您的需求:
NSArray *data = @[@{@"time": @"10:05"},@{@"time": @"1:06"},@{@"time": @"18:24"},@{@"time": @"7:29"},@{@"time": @"11:55"}];
NSArray *filteredData = [data filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(NSDictionary *dict, NSDictionary *bindings) {
NSArray *components = [dict[@"time"] componentsSeparatedByString:@":"];
NSAssert(components.count >= 2, @"Invalid time format.");
NSInteger h = [components[0] integerValue];
NSInteger m = [components[1] integerValue];
return h >= 1 && h < 18;
}]];
答案 1 :(得分:0)
您可以将值存储到数组中并使用此
[datesArray sortUsingSelector:@selector(compare:)];
它将按时间排序