3

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

4

3 回答 3

4

首先检索当前数据。

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

更新:

    [tempArr addObject:str];
    [storeData setObject:tempArr forKey:@"accounts"];
于 2012-11-05T10:53:40.080 回答
1

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"]);

你会得到

用户名 (1, 2) 用户名​​ (2, 3)

在控制台中。

于 2012-11-05T08:29:35.183 回答
0

只需将数组重新存储在用户默认值中并调用synchronize.

例如:

存储您的阵列...

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];
于 2012-11-05T08:36:30.833 回答