sortedArray 包含 100 多个需要按“时间”键中的“小时”组织的对象。结果是有一个数组数组来填充表的各个部分并使用小时作为索引。“时间”的形式是 - 2012-05-15 07:20:00
NSInteger d = 0;
NSInteger prevd;
NSMutableArray *tempArray = [[NSMutableArray alloc] init];
detailArray = [[NSMutableArray alloc] init];
for (NSInteger i = 0; i < 24; ++i)
[detailArray addObject:[NSNull null]];
for (NSArray *item in sortedArray) {
prevd = d;
d = [[[[item objectAtIndex:0] objectForKey:@"time"] substringWithRange:NSMakeRange(11, 2)] intValue];
if (d > prevd && prevd != 0) {
[detailArray replaceObjectAtIndex:d withObject:tempArray];
[tempArray removeAllObjects];
}
[tempArray addObject:item];
}
对象没有以正确的 detailArray 位置结束或根本没有结束。例如,[detailArray objectAtIndex:6]
给出时间为 14(下午 2 点)的项目。
我错过了什么?
使用第一个答案编辑以更正代码。就是现在:
NSInteger d = 0;
NSInteger prevd;
NSMutableArray *tempArray = nil;
detailArray = [[NSMutableArray alloc] init];
for (NSInteger i = 0; i < 24; ++i)
[detailArray addObject:[NSNull null]];
for (NSArray *item in sortedArray) {
prevd = d;
d = [[[[item objectAtIndex:0] objectForKey:@"time"] substringWithRange:NSMakeRange(11, 2)] intValue];
if (d > prevd) {
tempArray = NSMutableArray array];
[detailArray replaceObjectAtIndex:d withObject:tempArray];
}
[tempArray addObject:item];
}