【发布时间】:2016-05-03 12:07:57
【问题描述】:
我正在尝试创建购物车。我想将来自NSDictionary 的所有数据NSMutableDictionary 与具有DataItem 变量的条形码编号为key。我用那个代码块创建了NSMutableDictionary;
- (void)viewDidLoad {
[super viewDidLoad];
DataItem = [[[_response objectForKey:@"Data"] objectForKey:@"Items"] objectForKey:@"Item"];
NSMutableDictionary *CartItems = [[NSMutableDictionary alloc]init];
for(NSDictionary *transaction in DataItem)
{
[CartItems setValue:transaction forKey:[transaction objectForKey:@"BarcodeNumber"]];
}
}
当我推送另一个 viewController 以选择另一个放入购物车的项目时。再次推送viewController,它会从 CartItems 变量中删除之前的项目。
我知道我已将该代码块 NSMutableDictionary *CartItems = [[NSMutableDictionary alloc]init]; 放入 viewDidLoad 中。这就是为什么,它会生成新的 CartItems 变量。如果我想把它放在 .h 文件中,它会返回 nil。我没有找到任何解决方案。
有没有办法将数据加载到NSMutableDictionary 以供重复使用?还是有另一种方法来创建相同的逻辑?谢谢。
【问题讨论】:
-
DataItem 为零吗?也请遵循命名约定,类名以大写字母开头,变量以小写字母开头。
-
您可以使用单例,作为两个答案的状态,或者您可以将字典的引用传递给每个视图控制器。这个问题有很多答案。
标签: ios objective-c nsmutabledictionary