gpt4 book ai didi

ios - 每当调用 View Controller 时,保存在 NSUserDefaults 中的 NSArray 的内容都会被覆盖

转载 作者:行者123 更新时间:2023-12-01 19:02:04 26 4
gpt4 key购买 nike

一个 View Controller 包含:

  • UITextField (姓名)。
  • 用户界面按钮 (节省)。

  • 一旦我输入任何名称并点击保存,该名称就会添加到使用 NSUserDefaults 存储的数组中.

    这个 View Controller 是从另一个 View Controller 推送的,所以当我回到这个 View Controller 时, NSArray 的内容被我可能指定的新名称覆盖。我不确定是什么原因造成的,但我怀疑它与 allocation 有关系和 initializationNSArray .

    在我的 ViewDidLoad 中,我做了 NSMutableArray *namesList= [[NSMutableArray alloc]init];
    在我的 OnSave方法,
    [namesList addObject:nameTextField.text];
    [[NSUserDefaults standardUserDefaults] setObject:namesList forKey:@"namesListArray"];
    NSLog(@"items in array: %@",namesArray);

    编辑:
    相关 View Controller 截图:

    enter image description here

    在这里,当我点击 ADD按钮,第二个 View Controller 被按下。
    当我输入“kenneth”并点击保存时,控制台显示:
    2014-03-03 11:03:46.219 SmartWatch[664:a0b] items in array: (
    kenneth)

    现在,不用回到以前的 View Controller ,当我输入另一个名字说“john”并点击保存时,控制台会说:
    2014-03-03 11:15:43.646 SmartWatch[664:a0b] items in array: (
    kenneth,
    john)

    直到现在一切都很好。
    当我回到前一个 Controller 并回到第二个 View Controller 时会出现问题。现在,当我输入另一个名称时,说“scott”,控制台说:
    2014-03-03 11:19:50.815 SmartWatch[664:a0b] items in array: (
    scott)

    这意味着前两个名称被覆盖。我希望数组也保留“kenneth”和“john”,并且实际上应该将“scott”附加到数组中。

    我认为发生这种情况是因为当第二个 View Controller 再次进入前台时数组被初始化,但我不确定,我不知道如何纠正这个问题。

    希望问题现在很清楚。谢谢!

    最佳答案

    试试这个,

    NSArray *nameArray = [[NSUserDefaults standardUserDefaults] objectForKey:@"namesListArray"];
    NSMutableArray * namesList;
    if (!nameArray) {
    namesList = [[NSMutableArray alloc] init];
    } else {
    namesList = [NSMutableArray arrayWithArray:nameArray];

    }

    保存时
    [namesList addObject:nameTextField.text];
    [[NSUserDefaults standardUserDefaults] setObject: namesList forKey:@"namesListArray"];
    [[NSUserDefaults standardUserDefaults] synchronize];

    关于ios - 每当调用 View Controller 时,保存在 NSUserDefaults 中的 NSArray 的内容都会被覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22139067/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com