nsmutableSet をソートしていましたが、奇妙な問題に遭遇しました。
NSArray *data = @[@[@"1",@"2",@"3"],
@[@"2",@"3",@"4",@"5",@"6"],
@[@"8",@"9",@"10"],
@[@"15",@"16",@"17",@"18"]];
NSArray *sortArr = [[NSArray alloc] init];
NSMutableArray *Data = [[NSMutableArray alloc] init];
NSMutableSet *interSection = [[NSMutableSet alloc] init];
interSection = [NSMutableSet setWithArray:[data objectAtIndex:0]];
NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"description" ascending:YES ];
for (int i =1; i < 4; i ++) {
if ([interSection intersectsSet:[NSSet setWithArray:[data objectAtIndex:i]]]) {
[interSection unionSet:[NSSet setWithArray:[data objectAtIndex:i]]];
}
else{
sortArr = [interSection sortedArrayUsingDescriptors:[NSArray arrayWithObject:sort]];
[Data addObject:sortArr];
interSection = [NSMutableSet setWithArray:[data objectAtIndex:i]];
}
}
if ([interSection count] != 0) {
sortArr = [interSection sortedArrayUsingDescriptors:[NSArray arrayWithObject:sort]];
[Data addObject:sortArr];
}
NSLog(@"%@",Data);
しかし、出力は: ( 1, 2, 3, 4, 5, 6 ), ( 10, 8, 9 ), ( 15, 16, 17, 18 ) )
なぜ (10,8,9) なのに (8,9,10) なのか?
誰も答えを知っていますか?