繁体   English   中英

如何在iOS的同一Nsmutablearray中存储旧值和新值

[英]how to store old value and new value in same Nsmutablearray in ios

嗨,我是iOS开发人员的新手。

我有UITableViewUITextField 与在下一个屏幕中显示此数组相比,我在textfield中设置了一些不同的值,并且在NSmutablearray设置了每个textfield的值存储。 显示的数组值是完美的。 但是我的问题是当我切换回UITableView屏幕并再次在UITextField设置新值并将这些UITextField值存储在NSmutablearray问题是新值被覆盖为旧值。 但我想两个值都存储在NSArray

这是我的屏幕截图

在此处输入图片说明 在此处输入图片说明

summaryvc显示完美的数据。但是当我返回到屏幕并选择其他项目而不是单击placeorder。但是问题是我们无法在摘要屏幕中获得旧的选定项目。

这是用于将数组存储在Nsuserdefault中的按钮操作代码。 global.filteredArray是我的nsmutablearray.dic值是我的字典。

这是我的数组值

{
        counts = 1;
        "m_drycleaning_price" = 12;
        "m_id" = 3;
        "m_imagename" = d;
        "m_iron_price" = 16;
        "m_name" = "Coat(Man)";
        "m_wash_price" = 14;
        "m_washiron_price" = 13;
        total = 12;
    }









AppDelegate *myAppDelegate = [[UIApplication sharedApplication] delegate];
                             [myAppDelegate.arrayCounts  addObject:dictValues];
myAppDelegate.arrayCounts[indexPath.row][@"counts"] = [NSString stringWithFormat:@"%d",(int)value];
    myAppDelegate.arrayCounts[indexPath.row][@"total"] = [NSString stringWithFormat:@"%d",(int)y];


    - (IBAction)placeorder:(id)sender
         {
            NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

            [userDefaults setObject:global.filteredArray forKey:@"def_orderarraylist"];

            NSMutableArray *qualifiersArray = [NSMutableArray arrayWithArray:[userDefaults objectForKey:@"def_orderarraylist"]];

        NSLog(@"qualifier array=%@",qualifiersArray);

        [userDefaults synchronize];

        } 

请帮忙!

您必须在类而不是方法上声明数组,这样就可以了。

您可以执行以下操作:

-(void)viewDidLoad{
    array = [[NSMutableArray alloc] init];
}

要么

使用NSUserDefaults ,它将一直保留到删除该应用程序为止。

如果您有两个屏幕,则要在此处编辑阵列,只需将数组引用传递到第二个屏幕。

FirstViewController:

设置阵列:

SecondViewController *svc= [[SecondViewController alloc] initWithNibName:@"secondviewcontroller" bundle:nil];
svc.firstViewArray=secondViewArray;

SecondViewController:

@property(nonatomic,retain)NSMutableArray *secondViewArray;

我可以看到您正在使用全局数组将数据存储到NSUserDefaults。 在执行此操作时,您需要确保注意以下几点:

  1. 您需要做的第一件事是在将数据添加到全局数组中时,首先从NSUserDefaults中获取先前的数据并将其添加到全局数组中。
  2. 您需要确保每次将新数据添加到全局数组时,都已将以前的数据从NSUserDefaults添加到全局数组中
  3. 您还需要确保全局数组应该是NSMutable数组,并在初始化此数组时,之后在其中添加NSUserDefaults中的先前值。

希望对您有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM