Iphone 我们可以更新存储在NSUserDefault中的数组吗

Iphone 我们可以更新存储在NSUserDefault中的数组吗,iphone,ios,nsuserdefaults,Iphone,Ios,Nsuserdefaults,我将值存储在一个数组中,并将该数组存储在NSUserDefault中,然后我需要更新该数组才能这样做。如果那么如何?NSUserDefaults与NSDictionary一样,因此您可以通过将另一个对象设置为键值-setObject:forKey:来使用更新字典的相同方法 例如,当您尝试下面的代码时 NSUserDefaults *usr=[NSUserDefaults standardUserDefaults]; NSArray *arr= [NSArray arrayWithObjects:

我将值存储在一个数组中,并将该数组存储在
NSUserDefault
中,然后我需要更新该数组才能这样做。如果那么如何?

NSUserDefaults
NSDictionary
一样,因此您可以通过将另一个对象设置为键值
-setObject:forKey:
来使用更新字典的相同方法

例如,当您尝试下面的代码时

NSUserDefaults *usr=[NSUserDefaults standardUserDefaults];
NSArray *arr= [NSArray arrayWithObjects:[NSNumber numberWithInt:1],[NSNumber numberWithInt:2], nil];
[usr setObject:arr forKey:@"num"];
NSLog(@"usr %@",[usr arrayForKey:@"num"]);

NSUserDefaults *usr1=[NSUserDefaults standardUserDefaults];
NSArray *arr= [NSArray arrayWithObjects:[NSNumber numberWithInt:2],[NSNumber 
                          numberWithInt:3], nil];
[usr setObject:arr forKey:@"num"];
NSLog(@"user1 %@",[usr1 arrayForKey:@"num"]);
你会得到

usr( 1. 2. ) usr1( 2. 3. )


在控制台中。

只需将数组重新存储在用户默认值中,然后调用
同步

例如:

存储您的阵列

NSMutableArray *yourArray = .... // whatever you did to create your data

// store your data in the NSUserDefaults
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:yourArray forKey:@"myArray"];
[defaults synchronize];
。。。然后在你的应用程序中的某个其他时间更新它

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

// retrieve your data from the NSUserDefaults
NSMutableArray *yourArray = [defaults objectForKey:@"myArray"];

// edit the data, for example add some object.
[yourArray addObject:someNewObject]; 

// update the defaults
[defaults setObject:yourArray forKey:@"myArray"];
[defaults synchronize];

首先检索当前数据

    NSArray *tempNew = [[NSArray alloc]init];
    tempNew = [storeData objectForKey:@"accounts"];
    [tempArr addObjectsFromArray:tempNew];
更新:

    [tempArr addObject:str];
    [storeData setObject:tempArr forKey:@"accounts"];

这是一个可以为你提供帮助的链接..从这个链接上看到我的答案。。可能对你有帮助。。NSArray没有方法-addObject。所以它应该是NSMutableArray*yourMutableArray=[NSMutableArray arrayWithArray:yourArray];事实上,我修正了这个例子:)