NSDictonaryをなんとなく高速列挙してたら、期待している通りの順番で返ってこなかったのでメモ。
// この書き方だと、順序が保証されない。1,2,3とは返ってこない。 for (id key in dictionary) { NSLog(@"%@", key); }
NSArrayのsortedArrayUsingComparatorでソートしてから取り出すようにしました。
NSArray *keys = [dictionary allKeys]; // ソート keys = [keys sortedArrayUsingComparator:^(id o1, id o2) { return [o1 compare:o2]; }]; NSMutableArray *array = [NSMutableArray array]; // あとはソートされた順番にNSDictionaryから取得するだけ for (id key in keys) { [array addObject:[dictionary[key]]]; }