1

我正在努力将在线商店转换为移动应用程序。

但我卡在购物车上。

这就是我正在做的事情:我从服务器解析产品 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 将其保存到用户默认值中(我使用它,所以我不必在任何地方保存它。就在用户离开视图控制器时。这样我的用户可以编辑他/她购物车随心所欲,我不必担心它是否会被保存在任何地方)。

我究竟做错了什么?我只是不明白...

4

0 回答 0