我想用它的名字,websitename和rssfeed网址存储多个网址。 如何将其存储在字典中?
喜欢,
我的关键是,@"nameoffeed", @"websitename", @"urlfeedname"
我想将所有内容存储在与url相关的词典中。
像用户搜索3 feed那么名称,websitename和urlfeed都存储在NSDictionary中?
我该怎么做?
我正在使用它,但它只存储了1个值。
//newdevice1 is my nsmanageobject
NSArray *keys = [[[newDevice1 entity] attributesByName] allKeys];
NSDictionary *singledict = [newDevice1 dictionaryWithValuesForKeys:keys];
我在字典中需要这种类型的结果。
{
nameoffeed = "cnn" ;
websitename = "www.cnn.com";
urlfeedname = "www.cnn.com/feed";
nameoffeed = "nytimes" ;
websitename = "www.nytimes.com";
urlfeedname = "www.nytimes.com/feed";
}
答案 0 :(得分:1)
你可以这样做。
NSDictionary *dic = @{@"nameoffeed":@"cnn",@"websitename":@"www.cnn.com",@"urlfeedname":@"www.cnn.com/feed"};
NSDictionary *dic2 = @{@"nameoffeed":@"nytimes",@"websitename":@"www.nytimes.com",@"urlfeedname":@"www.nytimes.com/feed"};
NSArray *dicArray = @[dic,dic2];
答案 1 :(得分:0)
在Dictionary中我们可以保存或存储多个键值。但它必须是不同的键。键名不能相同。如果使用在词典中存储相同的键名,它会显示错误或您的应用程序崩溃。但是你可以在字典中使用相同的值。你必须存储具有多个相同值的不同键名。
您可以将保存字典集保存到数组中,如下所示
NSDictionary *dictFirstSet = [[NSDictionary alloc]initWithObjectsAndKeys:@"cnn",@"nameoffeed",@"www.cnn.com",@"websitename",@"www.cnn.com/feed",@"urlfeedname",nil];
NSDictionary *dictSecondSet = [[NSDictionary alloc]initWithObjectsAndKeys:@"nytimes",@"nameoffeed",@"www.nytimes.com",@"websitename",@"www.nytimes.com/feed",@"urlfeedname",nil];
NSArray *arrayDict = [[NSArray alloc]initWithObjects:dictFirstSet,dictSecondSet,nil];
NSLog(@"The arrayDict is - %@",arrayDict);
输出
The arrayDict is - (
{
nameoffeed = cnn;
urlfeedname = "www.cnn.com/feed";
websitename = "www.cnn.com";
},
{
nameoffeed = nytimes;
urlfeedname = "www.nytimes.com/feed";
websitename = "www.nytimes.com";
}
)
答案 2 :(得分:0)
我的关键是,@“nameoffeed”,@“websitename”,@“urlfeedname”我想要 将所有内容存储在与url相关的字典中。就像用户搜索3那样 name,websitename和urlfeed都存储在NSDictionary中?
基于此,我相信你想要一本字典词典,其中每个子词典都用名字索引。
在您的示例中,您已使用dictionaryWithValuesForKeys
为单个对象创建字典。
您需要做的就是通过网址键将每个字体添加到字典中。
首先,您需要一个可变字典来将项目添加到...
NSMutableDictionary *byURL = [[NSMutableDictionary alloc] init];
然后,对于每个项目,抓住您将用作关键字的“网址”......
NSString *name = [newDevice1 valueForKey:@"nameoffeed"];
并将值添加到词典
if (name) {
NSArray *keys = [[[newDevice1 entity] attributesByName] allKeys];
byURL[name] = [newDevice1 dictionaryWithValuesForKeys:keys];
}
然后,您可以为每个对象执行相同的操作,从而生成一个字典,您可以通过URL查找每个对象。
NSDictionary *d = byURL[@"cnn"];
将为您提供包含“cnn”
的所有键/值对的字典如果你想最终得到一个严格用于搜索的不可变字典(在添加你要添加的所有内容之后),你可以创建一个不可变的副本......
NSDictionary *objectsByURL = [byURL copy];