如何创建动态 NSDictionary 来存储具有多个键的多个 URL?
How to create dynamic NSDictionary to store multiple URLs with multiple keys?
我想用名称、网站名称和 rssfeed url 存储多个 url。
如何将其存储在字典中?
喜欢,
我的关键是,@"nameoffeed", @"websitename", @"urlfeedname"
我想将所有存储在与 url 相关的字典中。
就像用户搜索 3 feed 然后 name , 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";
}
你可以通过这种方式完成。
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];
在字典中我们可以保存或存储多个键 values.But 它必须是不同的 key.The 键名不能是 same.If 使用在字典中存储相同的键名,它向您显示错误或您的应用程序 crashes.But 您可以在 dictionary.You 中使用相同的值必须存储具有多个相同值的不同键名。
您可以将字典集保存到如下数组中
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";
}
)
My key is , @"nameoffeed", @"websitename", @"urlfeedname" I want to
store all in dictionary related to url . Like user search 3 feed then
name , websitename and urlfeed all are stored in NSDictionary ?
基于此,我相信你想要一个字典的字典,其中每个子字典都由名称索引。
在您的示例中,您已经使用 dictionaryWithValuesForKeys
.
为单个对象创建了字典
您需要做的就是通过 url 键将每个词添加到字典中。
首先,您需要一个可变字典来将项目添加到...
NSMutableDictionary *byURL = [[NSMutableDictionary alloc] init];
然后,对于每个项目,获取 "url" 您将用作键...
NSString *name = [newDevice1 valueForKey:@"nameoffeed"];
并将值添加到字典
if (name) {
NSArray *keys = [[[newDevice1 entity] attributesByName] allKeys];
byURL[name] = [newDevice1 dictionaryWithValuesForKeys:keys];
}
然后您可以对每个对象执行相同的操作,生成一个字典,您可以在其中通过 url.
查找每个对象
NSDictionary *d = byURL[@"cnn"];
将为您提供包含 "cnn"
的所有 key/value 对的字典
如果你想最终得到一个严格用于搜索的不可变字典(在添加你想添加的所有内容之后),你可以创建一个不可变副本...
NSDictionary *objectsByURL = [byURL copy];
我想用名称、网站名称和 rssfeed url 存储多个 url。 如何将其存储在字典中?
喜欢,
我的关键是,@"nameoffeed", @"websitename", @"urlfeedname"
我想将所有存储在与 url 相关的字典中。
就像用户搜索 3 feed 然后 name , 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";
}
你可以通过这种方式完成。
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];
在字典中我们可以保存或存储多个键 values.But 它必须是不同的 key.The 键名不能是 same.If 使用在字典中存储相同的键名,它向您显示错误或您的应用程序 crashes.But 您可以在 dictionary.You 中使用相同的值必须存储具有多个相同值的不同键名。
您可以将字典集保存到如下数组中
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";
}
)
My key is , @"nameoffeed", @"websitename", @"urlfeedname" I want to store all in dictionary related to url . Like user search 3 feed then name , websitename and urlfeed all are stored in NSDictionary ?
基于此,我相信你想要一个字典的字典,其中每个子字典都由名称索引。
在您的示例中,您已经使用 dictionaryWithValuesForKeys
.
您需要做的就是通过 url 键将每个词添加到字典中。
首先,您需要一个可变字典来将项目添加到...
NSMutableDictionary *byURL = [[NSMutableDictionary alloc] init];
然后,对于每个项目,获取 "url" 您将用作键...
NSString *name = [newDevice1 valueForKey:@"nameoffeed"];
并将值添加到字典
if (name) {
NSArray *keys = [[[newDevice1 entity] attributesByName] allKeys];
byURL[name] = [newDevice1 dictionaryWithValuesForKeys:keys];
}
然后您可以对每个对象执行相同的操作,生成一个字典,您可以在其中通过 url.
查找每个对象NSDictionary *d = byURL[@"cnn"];
将为您提供包含 "cnn"
的所有 key/value 对的字典如果你想最终得到一个严格用于搜索的不可变字典(在添加你想添加的所有内容之后),你可以创建一个不可变副本...
NSDictionary *objectsByURL = [byURL copy];