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



我想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并在收藏夹表中检索。

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

当您将所有内容存储到字典中时,您可以使用这样的东西

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

或者你可以把所有东西都放到一个数组中,然后像这样存储

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

您可以使用以下命令再次访问它

    NSDictionary * myDictionary = [[NSUserDefaults standardUserDefaults] dictionaryForKey:@"dictionary1"];

通常将对象添加到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"];

最新更新