2014-03-02 66 views
-1

我存儲在NSUserDefaults的一個的NSMutableDictionary,看起來像這樣:(鍵在左邊,值在右邊)的NSMutableDictionary作爲數據源的UITableView的

{ 
"3/2/14, 12:17:08 PM Central Standard Time" = 220; 
"3/2/14, 12:37:28 PM Central Standard Time" = 220; 
} 

我想在一個UITableView作爲

3/2/14 220 
顯示這些值

或類似的,左邊的日期,權重右邊。

如何使用此信息加載UITableView中的單元格?

+1

通過將對象分配給UTableView委託中給定索引路徑的單元格,可以像加載其他信息一樣加載此信息。您可以設置自己的UITableViewCell佈局子類,並根據需要設置顯示,或者使用Apple的預定義單元設計之一。 – MrBr

回答

1

NSUserDefaults class reference關於objectForKey

返回的對象是不可變的,即使你最初設置的值是可變的。

關於這一主題的相關討論請參見this SO question

話雖這麼說,你可以用它allKeys屬性訪問NSDictionary的鑰匙,並列舉你的字典的內容鍵值的方式是這樣的:

for (id key in dictionary.allKeys) { 
    value = dictionary[key]; 
} 

但是,你不應該使用可變集合(即,NSMutableDictionary)作爲數據源,因爲在將數據交給tableview之後,數據有可能發生變化(記住,它是可變的)。相反,請創建一個NSDictionary,其內容爲NSMutableDictionary

1

您不能將字典用作表視圖的數據源。表格視圖是有序的表示。字典是一個無序的集合。沒有任何特定的順序保留字典中的對象。

作爲表視圖數據源的模型,NSArray是一個不錯的選擇。如果可以的話,你當然可以使用一個字典數組。

您也可以使用allKeys方法查詢字典的鍵值,然後保存結果數組,然後使用allKeys數組中的索引獲取字典中的條目。