我正在努力将在线商店转换为移动应用程序。
但我卡在购物车上。
这就是我正在做的事情:我从服务器解析产品 ID 并将其交给其他视图控制器以继续使用它(例如,获取产品图像)。
最后,我想再次将产品 ID 交给服务器以完成订单。
我的问题是我的产品 ID 没有被保存。因此,我的用户现在不能离开购物车,稍后再回来。
我正在尝试使用放置在 NSArray 中的 NSMutableArray 将购物车安全到 NSUserDefaults (因为 NSMutableArrays 不能安全地保存到用户默认值中)。但是我的数组没有被用户默认保存。这是我的代码:
- (void)viewDidLoad
{
[super viewDidLoad];
if (warenID == nil) {
nil;
} else {
NSLog(@"Id: %@", warenID);
waren = [[NSMutableArray alloc] initWithCapacity:100];
[waren addObject:[NSString stringWithFormat:@"%@", warenID]];
}
if (waren == nil) {
NSUserDefaults *warenkorbSpeichern = [NSUserDefaults standardUserDefaults];
[warenkorbSpeichern objectForKey:@"WarenkorbSpeichern"];
NSLog(@"Waren: %@", warenSpeichern);
} else {
nil;
}
warenSpeichern = [NSArray arrayWithArray:waren];
UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(remove)];
self.navigationItem.rightBarButtonItem = item;
}
-(void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
NSUserDefaults *warenkorbSpeichern = [NSUserDefaults standardUserDefaults];
[warenkorbSpeichern setObject:warenSpeichern forKey:@"WarenkorbSpeichern"];
[warenkorbSpeichern synchronize];
NSLog(@"Gespeichert: %@", warenSpeichern);
}
我将 NSMutableArray 保存到一个 NSArray 中,然后通过 viewDidDisappear 将其保存到用户默认值中(我使用它,所以我不必在任何地方保存它。就在用户离开视图控制器时。这样我的用户可以编辑他/她购物车随心所欲,我不必担心它是否会被保存在任何地方)。
我究竟做错了什么?我只是不明白...