【发布时间】:2013-07-17 14:51:12
【问题描述】:
与question 有点相关。所以,我有两个 NSMutableDictionaries。 DictA 是原始数据,而 DictB 将是 UITableVIew 从中获取数据的数据。如果用户过滤某些东西,我可以删除 DictB 中不应该显示的所有对象,然后调用 [table reloadData] 并且效果很好,如下实现:
NSMutableDictionary filterSelection = [DictA objectForKey:what the user picked];
[dictB removeAllObjects];
dictB = filterSelection;
[table reloadData];
这将使 UITableView 仅显示用户过滤的内容。
问题从这里开始:
- 如何将所有数据“刷新”回 DictB 以便用户做出新的选择?即 DictB = DictA (显然由于引用类型而不起作用,只需将其放在那里以表明我需要将所有数据重新过滤一次)。这在任何情况下都不起作用,因为从 dictB 中删除所有对象会从 dictA 中删除所有内容,因为它们引用了内存中的相同对象。
欢迎任何建议,我觉得我有正确的想法,只是在执行过程中迷失了方向。
【问题讨论】:
-
字典没有 objectAtIndex 方法,所以 DictA 不能是字典,它必须是数组(或可变数组)。
-
你说得对,我输入伪代码有点太快了。我会编辑。
标签: ios objective-c