从NSUserDefault问题加载数组

时间:2013-03-29 07:47:03

标签: ios nsarray nsuserdefaults

我想从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中只有一个数组,其中包含所有字符串。请告诉我如何实现这个目标

1 个答案:

答案 0 :(得分:1)

替换你的代码行....

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

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

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

这符合您的要求。