とりあえず、CoreData については、今後のスキルアップにより方法が見つかるだろうと信じ、別の方法を取る事を考えてみた。
今回は、必要データだけを取り出してソートをかける方法が思いついたので、その方法を取ってみる。
この場合は、NSArray に NSDictionary 型のデータを格納し、NSSortDescriptor を使用する事により、
NSDictionary に格納しているデータをキーとして並び替えが行える事が分かったので実装してみた。
コードは以下の通り
// 並び替えをするデータを用意 NSArray *dataArray = [NSArray array]; for(int i=0; i<5; i++) { NSDictionary *mdic = [NSDictionary dictionaryWithObjectsAndKeys: [NSString stringWithFormat:@"%d",i], @"index", 10-i, @"count" , nil]; dataArray = [dataArray arrayByAddingObject:mdic]; } NSSortDescriptor *sortDescCount; sortDescCount = [[NSSortDescriptor alloc]initWithKey:@"count" ascending:NO]; NSArray *sortDescArray; sortDescArray = [NSArray arrayWithObjects:sortDescCount, nil]; NSArray *sortArray; sortArray = [dataArray sortedArrayUsingDescriptors:sortDescArray]; // 内容確認 for(NSDictionary *dic in sortArray) { NSLog(@"sort data count = %@, index = %@", [dic objectForKey:@"count"], [dic objectForKey:@"index"]); }一応ログ出力で、問題ない事を確認した。
上記は、並び替えのキーが一つだが、複数キーも対応できる様だ。
処理の幅が広がるね。
0 件のコメント:
コメントを投稿