NSString
という配列の値がsortedRefs
となり、それぞれがNSDictionary
のキーで、quotes
となります。新しいNSDictionaryエントリが正しい順序でない
私がしようとしているのは、条件が満たされた場合に、そのキーを新しい値に変更して新しいNSDictionary
に渡すことです。
for (NSString *key in sortedRefs) {
NSLog(@"%@", key);
if ([[self.quotesManager.quotes[key] valueForKey:@"active"] boolValue]) {
[self.activeQuotes setObject:self.quotesManager.quotes[key] forKey:key];
NSLog(@"%@", [self.activeQuotes allKeys]);
}
}
問題がactiveQuotes
辞書は私がに値を挿入するために移入されていないということです。最初の3つのループの後に私の出力より具体的にはときに私あなたが見ることができるように
2016-05-26 23:10:59.939 Project[2553:94502] DE2109D0C637CBD755E91ED18F85C17E
2016-05-26 23:10:59.940 Project[2553:94502] (
DE2109D0C637CBD755E91ED18F85C17E
)
2016-05-26 23:10:59.940 Project[2553:94502] 309FFEB2DEC0F938D3E5FFD39112F9F6
2016-05-26 23:10:59.940 Project[2553:94502] (
DE2109D0C637CBD755E91ED18F85C17E,
309FFEB2DEC0F938D3E5FFD39112F9F6
)
2016-05-26 23:10:59.940 Project[2553:94502] 925DEC6CFB3FDF87530677FE93E97A46
2016-05-26 23:10:59.940 Project[2553:94502] (
925DEC6CFB3FDF87530677FE93E97A46,
DE2109D0C637CBD755E91ED18F85C17E,
309FFEB2DEC0F938D3E5FFD39112F9F6
)
です309FFEB2DEC0F938D3E5FFD39112F9F6
キーの後に行くのではなく、925DEC6CFB3FDF87530677FE93E97A46
を挿入してください。ループが進むにつれて、これはより頻繁に起こり、私はsortedRefs
アレイで持っていたものとは全く異なるオーダーで終わる。
辞書に新しいエントリを挿入している間に注文を保存する方法はありますか?
定義による辞書はソートされていません。あなたがそれらを必要とするならば、辞書はデータ構造の間違った選択です。 – Gruntcakes