0

我有一个包含多个字典的数组,其中有一个存储小时和分钟的字段,例如“14:22”。

如何按时间过滤数组?例如,我希望该字段具有时间 > 01:00 和时间 < 18:00 的所有字典

4

2 回答 2

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;
}]];
于 2013-09-14T19:52:51.240 回答
0

您可以将值存储到数组中并使用它

[datesArray sortUsingSelector:@selector(compare:)];

它会给你安排时间

于 2013-09-14T08:19:54.907 回答