2

このサイトは素晴らしいです。私はたくさんの返信を受け取っているので、ここに来る前に問題があったことをコーディングしようとしました

NSMutableArray *sort = [NSMutableArray arraywithArray:[dic allValues]]; 

for(NSString *s in sort){
    [Purchases appendString:[NSString stringWithFormat:@"%@",s]]; 
} 
textview.text = Purchases; 

Plistファイルを開いたときのように、出力の順序がまだ表示されません...また、リソースフォルダーにplistファイルを書き込んで開くことも可能です...

助けてくれてありがとう!

編集:

2010-02-12 23:54:35 -0500 
2010-02-12 23:29:11 - 0500 
2010-02-12 23:54:42 - 0500 
2010-02-12 23:54:58 - 0500  

それが私が得る注文です^^

しかし、plist ファイルを開くと、次の順序になります。

2010-02-12 23:29:11 -0500 
2010-02-12 23:54:35 -0500 
2010 02-12 23:54:42 - 0500 
2010 02-12 23:54:58 - 0500 

^^降順を除いて、それは私が望む順序です

4

3 に答える 3

3

[dic allValues]信頼できる順序でキーを返すことはありません。下のセットを使用しているため、順序付けされていません。

挿入順序も保持する辞書を探している場合は、 CHDataStructures フレームワークCHOrderedDictionaryの一部であることを確認してください。

于 2010-02-14T02:22:10.743 に答える
2

ドキュメントで指定されているように、値の順序は指定されていません。したがって、反復の前に、 NSArrayのソート方法の 1 つを使用してキーをソートする必要があります。

たとえば、次のコードは文字列値を昇順で並べ替えます。

NSArray *sort = [[dic allValues] sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];

for(NSString *s in sort){
    [Purchases appendString:[NSString stringWithFormat:@"%@",s]]; 
} 
textview.text = Purchases; 

配列をソートするさまざまな方法 (セレクター、ブロックなど) については、 NSArray のドキュメントを参照してください。

于 2010-02-14T09:37:57.223 に答える
1

降順(日時が新しい順)で表示したいのですが...

次に、それを並べ替える必要があります。辞書をロードまたは挿入した順序でなくても、任意の順序でコンテンツを提供する辞書を期待することはできません。

于 2010-02-14T03:28:51.720 に答える