NSDictionary形式で取得した2テーブルの同じカラムの値をソートしてマージする方法
//テーブルAとBにpriceカラムとnameカラムがあり、それぞれから2カラムをNSDictionaryで抽出したとする NSArray *tableA = [self loadA]; //テーブルAから取得 NSArray *tableB = [self loadB]; //テーブルBから取得 //マージ NSMutableSet *set = [[NSMutableSet alloc] init]; [set unionSet:[NSSet setWithArray:tableA]]; [set unionSet:[NSSet setWithArray:tableB]]; NSArray *merge = [set allObjects]; [set release]; //金額順に並び替え NSSortDescriptor *descriptor = [[[NSSortDescriptor alloc] initWithKey:@"price.intValue" ascending:YES] autorelease]; merge = [merge sortedArrayUsingDescriptors:[NSArray arrayWithObject:descriptor]];
これでOK!
NSSetって便利だ!
CoreDataで使われているんだから当たり前か。
参考URL
http://fullfool.com/blog/?p=1213
http://ssdkfk.wordpress.com/2011/07/25/nsarray%E3%81%ABnsdictionary%E3%82%92%E5%85%A5%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E6%99%82%E3%81%AE%E3%82%BD%E3%83%BC%E3%83%88%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8B%EF%BC%9F/