簡體   English   中英

NSMutableDictionary 的替代品?

[英]Alternatives to NSMutableDictionary?

我有 3 個 NSMutableDictionaries 保存 3 個單獨的 UITableViews 的數據。 當從一個 UITableViews 檢查一個值時,我想保留該值,以便根據從不同表中檢查的不同值,我可以在下一頁上生成答案。 我想也許我可以創建一個包含所有可能選擇的新 NSMutableDictionary,然后當用戶點擊復選框時,告訴我的 newNSMutableDictionary 該值已被選中。 但我不認為它是這樣工作的,因為它是一個鍵值對。 我想知道是否有其他選擇,或者是否有人有很好的方法來保存這些信息? 謝謝。

而不是這樣做,您可以嘗試使用一個NSMutableArray選定的NSIndexPath對象。 這樣,您將擁有一個非常輕量級的 memory 占用空間(延遲加載),如果您需要獲取實際單元格的值,您可以使用 -tableView:cellForRowAtIndexPath 詢問UITableView -tableView:cellForRowAtIndexPath:

或者,更好的是,擁有一個NSMutableDictionary ,其中一個鍵是包裝在NSNumber中的特定 tableview 的tag ,值是所選索引路徑的NSMutableArray

檢索選定的索引路徑就像這樣簡單:

NSArray *indexPaths = [selectedDict objectForKey:[NSNumber numberWithInt:tableView.tag]];

for(NSIndexPath *p in indexPaths) {
   UITableViewCell *cell = [tableView cellForRowAtIndexPath:p];
   //do something with cell...
}

為什么不將所有可能的選擇存儲在 NSDictionary 中,用用戶可以做出的所有選擇對其進行初始化。 當用戶進行選擇時,將該項目添加到“selectedItems”NSMutableDictionary。 這樣,您的 NSMutableDictionary (包含選擇)將永遠只包含選定的項目,然后您可以在此字典中添加和刪除,而無需改變包含用戶可以進行的選擇的非可變 NSDictionary ..?

我不確定我是否正確理解了您的問題。

但是,如果您的數據具有樹的“形狀”,您可能會考慮以這種方式保存信息。

  • 你可以在你的字典里面放一個字典
  • 您可以將數據放入 CoreData 並使用 NSTreeController

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM