无法从字典中检索数据
Unable to retrieve the data from Dictionary
在我的项目中,我收到来自服务器的响应,格式为
response:
<JKArray 0x7fa2e09036b0>(
{
id = 23;
name = "Name1";
},
{
id = 24;
name = "Name2";
}
)
我从这个响应数组中检索不同索引处的对象,然后将它们添加到 mutableArray 中,然后添加到 contactsDictionary 中。
self.contactsDictionary = [[NSMutableDictionary alloc] init];
for(int i=0 ; i < [response count] ; i++)
{
NSMutableArray *mutableArray=[[NSMutableArray alloc] init];
[mutableArray addObject:[response objectAtIndex:i]];
[self.contactsDictionary setObject:mutableArray forKey:[NSString stringWithFormat:@"%i",i]];
}
我想从项目中其他位置的 contactsDictionary 中检索键 @"name" 的数据。那么怎么做呢。
提前致谢....
这是错误的方式,就像您设置 contactsDictionary 一样。
替换下行
[self.contactsDictionary setObject:mutableArray forKey:[NSString stringWithFormat:@"%i",i]];
和
[self.contactsDictionary setObject:[mutableArray objectAtIndex :i] forKey:[NSString stringWithFormat:@"%i",i]];
因为每次你的数组都有新对象,所以你的联系人字典的第一个值有一个对象,然后第二个值有两个对象。所以你不应该那样做。
现在,如果你想检索 name
然后调用 like
NSString *name = [[self.contactsDictionary objectForKey : @"1"]valueForKey : @"name"];
避免语法错误,因为在这里输入了 ans。
根据评论更新:
只取一个可变数组作为示例,
NSMutableArray *arr = [[NSMutableArray alloc]init];
[arr addObject : name]; //add name string like this
希望这会有所帮助:)
Aloha 从你的回复中我可以根据你的回复给你这样的 Belo 回答。
for(int i=0;i<[arrRes count];i++);
{
NSString *strId = [NSString stringWithFormat:@"%@",[[arrRes obectAtIndex:i]objectForKey:@"id"]];
NSString *StrName = [NSString stringWithFormat:@"%@",[[arrRes objectAtIndex:i]objectForKey:@"name"]];
NSLog(@"The ID is -%@",strId);
NSLog(@"The NAME is - %@",strName);
}
在我的项目中,我收到来自服务器的响应,格式为
response:
<JKArray 0x7fa2e09036b0>(
{
id = 23;
name = "Name1";
},
{
id = 24;
name = "Name2";
}
)
我从这个响应数组中检索不同索引处的对象,然后将它们添加到 mutableArray 中,然后添加到 contactsDictionary 中。
self.contactsDictionary = [[NSMutableDictionary alloc] init];
for(int i=0 ; i < [response count] ; i++)
{
NSMutableArray *mutableArray=[[NSMutableArray alloc] init];
[mutableArray addObject:[response objectAtIndex:i]];
[self.contactsDictionary setObject:mutableArray forKey:[NSString stringWithFormat:@"%i",i]];
}
我想从项目中其他位置的 contactsDictionary 中检索键 @"name" 的数据。那么怎么做呢。 提前致谢....
这是错误的方式,就像您设置 contactsDictionary 一样。
替换下行
[self.contactsDictionary setObject:mutableArray forKey:[NSString stringWithFormat:@"%i",i]];
和
[self.contactsDictionary setObject:[mutableArray objectAtIndex :i] forKey:[NSString stringWithFormat:@"%i",i]];
因为每次你的数组都有新对象,所以你的联系人字典的第一个值有一个对象,然后第二个值有两个对象。所以你不应该那样做。
现在,如果你想检索 name
然后调用 like
NSString *name = [[self.contactsDictionary objectForKey : @"1"]valueForKey : @"name"];
避免语法错误,因为在这里输入了 ans。
根据评论更新:
只取一个可变数组作为示例,
NSMutableArray *arr = [[NSMutableArray alloc]init];
[arr addObject : name]; //add name string like this
希望这会有所帮助:)
Aloha 从你的回复中我可以根据你的回复给你这样的 Belo 回答。
for(int i=0;i<[arrRes count];i++);
{
NSString *strId = [NSString stringWithFormat:@"%@",[[arrRes obectAtIndex:i]objectForKey:@"id"]];
NSString *StrName = [NSString stringWithFormat:@"%@",[[arrRes objectAtIndex:i]objectForKey:@"name"]];
NSLog(@"The ID is -%@",strId);
NSLog(@"The NAME is - %@",strName);
}