我有一個類似於 - >天(表) - >時間(表) - >信息(視圖)的層次結構。存儲表格視圖元素的最佳方法是什麼?
將信息存儲爲NSDictionary,將Days作爲關鍵字並將Time作爲NSArray作爲每個關鍵字,或將Days作爲NSArray與另一個NSArray作爲Time一起存儲會更好嗎?
重點要注意的事情:
- 我想那種日子和時間。
- 如果我願意,我可以刪除NSArray中的一些Time數據。
我有一個類似於 - >天(表) - >時間(表) - >信息(視圖)的層次結構。存儲表格視圖元素的最佳方法是什麼?
將信息存儲爲NSDictionary,將Days作爲關鍵字並將Time作爲NSArray作爲每個關鍵字,或將Days作爲NSArray與另一個NSArray作爲Time一起存儲會更好嗎?
重點要注意的事情:
如果要刪除或替換數組中的元素,則必須使用可變版本NSMutableArray
和NSMutableDictionary
。我可能會爲此使用一個數組。
我會使用每天NSMutableArray的天NSMutableDictionary爲每一天。這樣你避免試圖保持兩個單獨的數組同步,因爲每個「日」鍵將始終指向你的時間陣列。
你可以按你想要的任何方式對你的數組排序,因爲它是一個數組,你可以選擇如何在表中簡單地根據鍵顯示你的日子。您可以使用[dictionary allKeys]
方法訪問所有密鑰的數組。
例如,在viewDidLoad
中,可以使用[dictionary allKeys]
方法來獲取字典的鍵的數組。您可以按照您喜歡的方式對其進行排序,然後遍歷cellForRowAtIndexPath
tableview數據源方法中的數組。
-(void)viewDidLoad {
/* keys = NSMutableArray instance variable
dictionary = the dictionary of days, with each days value being an array of times
*/
keys = [dictionary allKeys];
//sort however you want
}
,然後在didSelectRowAtIndexPath
委託方法,你知道他們選擇的基礎上,選擇的indexPath.row和你的鑰匙陣列的行了哪個鍵。
是的,我應該說我正在使用NSMutableArray&NSMutableDictionary。 – jylee