NSDictionary中的数组:如何保存到NSUserDefaults

时间:2012-10-11 22:02:22

标签: iphone sdk

我想将Array/NSDictionary保存到NSUserDefaults,但我尝试的任何内容都无效。这是我的代码所以如果你知道怎么做,请帮助我。

NSArray *oneArray = [NSArray arrayWithObjects:@"Radio One",nil];
NSDictionary *one = [NSDictionary dictionaryWithObject:oneArray forKey:@"Stations"];

NSArray *oneLinkArray = [NSArray arrayWithObjects:@"http://mobile.com:28000/",nil];
NSDictionary *oneLink = [NSDictionary dictionaryWithObject:oneLinkArray forKey:@"Stations"];

[data addObject:one];
[link addObject:oneLink];

我需要这个的原因是将此电台放入收藏夹。所以我的想法是将这些信息保存到NSUserDefaults并在收藏夹表中检索。

谢谢,欢迎任何建议受到欢迎和赞赏。

2 个答案:

答案 0 :(得分:0)

将所有内容存储到词典中时,可以使用类似的内容

  [[NSUserDefaults standardUserDefaults] setObject:link forKey:@"dictionary1"];  

或者您可以将所有内容放入数组中并像这样存储

  [[NSUserDefaults standardUserDefaults] setObject:data forKey:@"array1"];

您可以使用

重新访问它
    NSDictionary * myDictionary = [[NSUserDefaults standardUserDefaults] dictionaryForKey:@"dictionary1"];

答案 1 :(得分:0)

通常在NSUserDefaults中添加一个对象如下:

NSMutableDictionary *dictionaryToAdd = [[NSMutableDictionary alloc] init];
[dictionaryToAdd setObject:@"xyz" forKey:@"myKey"];

NSUserDefaults *myDefaults = [NSUserDefaults standardUserDefaults];
[myDefaults setObject:dictionaryToAdd forKey:@"someKey"];

[myDefaults synchronize];

上面代码中的一些内容 - 你在'数据'和'链接'中添加内容但是我没有在你的代码中看到它们,所以我假设这些数组存在于某个地方。

总结一下 - 声明一个NSUserDefaults对象,像NSDictionary一样将对象设置为它,然后将其同步以保存数据。

要求的附加代码:

//You have an array named arrayToAdd that has already been created
NSUserDefaults *myDefaults = [NSUserDefaults standardUserDefaults];
[myDefaults setObject:arrayToAdd forKey:@"SomeKeyThatYouMakeUp"];
[myDefaults synchronize];

//You want to get the array out of NSUserDefaults
NSArray *mySavedArray;
NSUserDefaults *myDefaults = [NSUserDefaults standardUserDefaults];
mySavedArray = [myDefaults objectForKey:@"SomeKeyThatYouMakeUp"];