とりあえず、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 件のコメント:
コメントを投稿