Iphone NSDictionary中的数组:如何保存到NSUserDefault

Iphone NSDictionary中的数组:如何保存到NSUserDefault,iphone,sdk,Iphone,Sdk,我想将Array/NSDictionary保存到NSUserDefaults中,但我尝试的任何操作都不起作用。这是我的代码,如果你知道怎么做,请帮助我 NSArray *oneArray = [NSArray arrayWithObjects:@"Radio One",nil]; NSDictionary *one = [NSDictionary dictionaryWithObject:oneArray forKey:@"Stations"]; NSArray *oneLinkArray =

我想将
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"];

如果上述操作仍然不起作用,那么您可以查看数据和链接的日志所有内容都已在字典中。我试图做的是将这个现有的数组放入NSUserDefaults中。谢谢你的建议,我会尽力的,但是如果你有其他的建议,请分享。ThanksI大约有50个电台。所以,我的想法是,当用户在detailview中单击“星”时,将触发将数据从数组传输到NSUserDefaults的操作。我认为这是一种方法,但如果有人做了类似或相同的事情,请分享。谢谢问题不是你在保存一个NSArray,而是数组中的内容。存储为用户默认值的对象只能是plist类型:数据、数字、字符串、字典或数组。按照Jai的建议,它可以正常工作。她是我的代码:NSMutableDictionary*dictionaryToAdd=[[NSMutableDictionary alloc]init];[字典添加setObject:theHeaderText-forKey:@“数据];[dictionaryToAdd setObject:theLabelText-forKey:@“一”][dictionaryToAdd setObject:linkText-forKey:@“链接”];NSUserDefaults*myDefaults=[NSUserDefaults standardUserDefaults];[myDefaults setObject:dictionaryToAdd-forKey:@“Stations”];[我的默认值同步];谢谢你说的对上面的代码是我如何向数组添加“数据”和“链接”的代码。基于此,我如何将这些数组添加到NSUserDefaults中。(我没有开始我没有发布任何代码,因为我不知道如何发布)谢谢,我在上面的回复中添加了另一段代码来演示这一点。这与第一个示例中添加NSMutableDictionary几乎相同。实际上,这与向NSDictionary添加任何对象(注意:它必须是一个对象)几乎相同。如果我能提供进一步的帮助,请告诉我。我最终按照Jai的建议做了,而且效果很好。她是我的代码:NSMutableDictionary*dictionaryToAdd=[[NSMutableDictionary alloc]init];[字典添加setObject:theHeaderText-forKey:@“数据];[dictionaryToAdd setObject:theLabelText-forKey:@“一”][dictionaryToAdd setObject:linkText-forKey:@“链接”];NSUserDefaults*myDefaults=[NSUserDefaults standardUserDefaults];[myDefaults setObject:dictionaryToAdd-forKey:@“Stations”];[我的默认值同步];谢谢