我正在努力将在线商店转换为移动应用程序。
但我被困在购物车上。
以下是我正在做的事情: 我从服务器解析产品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将其保存到用户默认值中(我使用它,所以我不必在任何地方保存它。就在用户离开视图控制器时。这样我的用户就可以编辑他/她的购物车经常随心所欲,我不必担心它到处都被保存了。
我做错了什么?我只是不明白......