2017-10-31 9 views
0

でオブジェクトを追加すると、辞書NSMutableDictionary私はここでキー でNSMutableDictionaryにシーケンスを追加したシーケンスの問題

New, 
To Do, 
Basic, 
Advanced, 
In Progress, 
Done 

の鍵となります。しかし、私はすべてのキーNSMutableDictionaryを印刷するとき、出力がどれソリューション

Advanced, 
In Progress, 
To Do, 
New, 
Done, 
Basic 

異なっていましたこのため ?

+0

のキーを取得してくださいディクショナリでは、インデックスではなくキーで要素にアクセス/設定するため、順序は保証されません。 – Larme

+0

はい、私たちはこれのための命令を設定していないことを知っています、あなたは他の解決策があれば教えてください。 – Vivek

+0

配列を使用しますか?何を保存/正確にしたいですか?目的は何ですか? – Larme

答えて

0

辞書は順序付けられていないコレクションです。項目の順序は保証されず、保持されません。オブジェクトが辞書からフェッチされる順序については、何も仮定しないでください。指定されておらず、変更される可能性があります。

注文コレクションが必要な場合は、単一要素辞書の配列を使用するか、keyおよびvalueプロパティを持つカスタムオブジェクトの配列を使用してみてください。

0

あなたは次のことを試すか、あなたはあなたがこのようArraykey-valueのペアを使用することができますDictionary

内の要素の位置を心配している場合は独自のデータ構造を考え出すことができます - >[[String : AnyObject]]。以下のように見える :あなたはまた、このようArraykeyvalueのタプルを使用することができます[["New" : 1],["In Progress" : 3],...]

- >[(key,value)] 次のようになります。[("New" , 1),("In Progress" , 3),...]

0

は、この配列

NSArray *orderedArr = [[dict allKeys] sortedArrayUsingSelector:@selector(localizedStandardCompare:)]; 
関連する問題