保存购物车内容UITableView

时间:2013-11-06 11:03:05

标签: ios objective-c nsarray nsuserdefaults

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

但我被困在购物车上。

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

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

0 个答案:

没有答案