2010-02-14 99 views
2

這個網站是偉大的,我得到了很多的答覆,所以我試圖代碼是什麼我曾與前這裏的問題是的NSDictionary - 打印陣列

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 

^^那我想除了順序在下降

+0

您能展示您期望的訂單和您獲得的訂單嗎?我有一種感覺,你可能想要從字典中排序鍵的數組,而不是數組的值,然後使用排序的鍵來訪問字典。 – 2010-02-14 02:21:24

+2

當你將東西存儲在字典中時,你將會失去所有的訂購。 – dreamlax 2010-02-14 02:21:37

+0

是的,我想排序日期+時間的鍵,我想按降序顯示(最新日期時間第一)... – Timothy 2010-02-14 02:56:46

回答

3

[dic allValues]不以任何可靠的順序返回鍵。它使用下面的集合,這意味着它是無序的。

如果您正在查找也維護廣告訂單的字典,請查看CHOrderedDictionary,它是CHDataStructures framework的一部分。

1

我想表明它降序排列(最新日期時間第一)...

然後,你需要sort it。您無法依靠以任何順序向您提供其內容的詞典,甚至不包括您加載或插入它們的訂單。

2

如規定的in the documentation,未指定值的順序。因此,您需要在迭代之前對鍵進行排序,其中一種排序方法爲NSArray

例如,此代碼將在升序字符串值進行排序:

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

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

參考NSArray documentation瞭解的各種方法上排序的陣列(選擇器,塊,等等)。