-2

我想从 nsuserdefault 加载数组,然后我想在该数组中添加一些东西,然后在我想用新更新的数组更新我的 nsuserdefault 之后,我正在执行以下操作

NSUserDefaults *defs = [NSUserDefaults standardUserDefaults];
if([defs valueForKey:@"Images"] )
{
    [appDelegate.arrayOfPaths addObject :[NSString stringWithFormat:@"%@", [defs valueForKey:@"Images"]]];
}
[appDelegate.arrayOfPaths addObject:path];
NSLog(@"_arrayOfPaths%@",appDelegate.arrayOfPaths);
[defs setObject:appDelegate.arrayOfPaths forKey:@"Images"];
NSLog(@"%@",[defs valueForKey:@"Images"]);
[appDelegate.arrayOfPaths removeAllObjects]; 

所以我的问题首先是当我使用 NSUserdefalut 加载数组时,它会使用一个包含一个对象(字符串)的数组来归档,然后我用新字符串更新我的数组,然后将其添加到 nsuserdefalut 中,但是在 nsuserdefalut 中,第一个对象是数组一个字符串,另一个只是字符串,我不想要这个。我只想要 nsuserdefault 中的一个数组,其中包含所有字符串。请告诉我如何实现这一目标

4

1 回答 1

1

替换您的代码行....

 [appDelegate.arrayOfPaths addObject :[NSString stringWithFormat:@"%@", [defs valueForKey:@"Images"]]];

就像这样在 nsuser 默认值中获取一个数组中的所有字符串...

 [appDelegate.arrayOfPaths addObjectsFromArray : [defs valueForKey:@"Images"]]];

这将满足您的要求。

于 2013-03-29T08:49:51.250 回答