我有3个NSMutableDictionaries,它们包含3个独立的UITableViews的数据。当从其中一个UITableViews检查一个值时,我希望保持该值,这取决于从不同表中检查的不同值,我可以在下一页生成一个答案。我想也许我可以创建一个具有所有可能选择的新NSMutableDictionary,然后当用户点击复选框时,告诉我的newNSMutableDictionary已经选择了该值。但我不认为它是这样的,因为它是一个键值配对。我想知道是否有其他选择,或者有人有一个很好的方法来保存这些信息?感谢。
答案 0 :(得分:2)
您可以尝试使用一个 NSMutableArray
个所选NSIndexPath
个对象,而不是这样做。
这样,你就拥有了非常轻量级的内存占用(延迟加载),如果你需要获取实际单元格的值,你可以UITableView
-tableView:cellForRowAtIndexPath:
或者更好的是,只有一个NSMutableDictionary
,其中一个键是tag
中包含的特定tableview的NSNumber
,其值为NSMutableArray
索引路径。
要检索选定的索引路径,就像这样简单:
NSArray *indexPaths = [selectedDict objectForKey:[NSNumber numberWithInt:tableView.tag]];
for(NSIndexPath *p in indexPaths) {
UITableViewCell *cell = [tableView cellForRowAtIndexPath:p];
//do something with cell...
}
答案 1 :(得分:0)
为什么不将所有可能的选择存储在NSDictionary中,使用用户可以进行的所有选择对其进行初始化。当用户进行选择时,将该项添加到“selectedItems”NSMutableDictionary。这样你的NSMutableDictionary(包含选择)将只包含其中的选定项,然后你可以在这个字典中添加和删除,而不需要改变包含用户可以做出的选择的非可变NSDictionary。?< / p>
答案 2 :(得分:0)
我不确定我是否理解你的问题。
但是,如果您的数据具有树的“形状”,您可能会考虑以这种方式保存信息。