EntityItem*item1 = [[EntityItem alloc]init];
item1.name = @"なまえ1";
item1.code = @"id10";
EntityItem*item2 = [[EntityItem alloc]init];
item2.name = @"なまえ2";
item2.code = @"id03";
EntityItem*item3 = [[EntityItem alloc]init];
item3.name = @"なまえ3";
item3.code = @"id12";
EntityItem*item4 = [[EntityItem alloc]init];
item4.name = @"なまえ4";
item4.code = @"id05";
EntityItem*item5 = [[EntityItem alloc]init];
item5.name = @"なまえ5";
item5.code = @"id02";
//並び替える独自クラス入り配列
NSArray *origin = @[item1,item2,item3,item4,item5];
//並び替えたいコードの順番
NSArray *sort = @[@"id02",@"id10",@"id03",@"id12",@"id05"];
//並び替え
NSArray *sortedArray = [origin sortedArrayWithOptions:NSSortConcurrent
usingComparator:(NSComparator)^(EntityItem* obj1,EntityItem* obj2){
NSUInteger index1=[sort indexOfObject:obj1.code];
NSUInteger index2=[sort indexOfObject:obj2.code];
if(index1>index2){
return NSOrderedDescending;
}else {
return NSOrderedAscending;
}
}];
//並び変わった確認
for(EntityItem*item in sortedArray){
NSLog(@"code:%@",item.code);
}
2015年11月25日水曜日
独自クラスのArrayを指定のコード順に並べ替える(メモ)
登録:
コメント (Atom)