只有NSMutableDictionary的最后一个值被添加到NSMutableArray中



我已尽力搜索将NSMutableDictionary添加到NSMutabableArray的答案。不幸的是,他们都要求我使用"[allValues]",这不是我想要的。

问题是,

在头文件中,我定义了

NSMutableArray *arData;

在m文件中,

arData = [[NSMutableArray alloc] init];
NSMutableDictionary *mutableDictionary5 = [[NSMutableDictionary alloc]init];
for (i=0;i<[[[self rssParser]rssItems]count];i++)
{
    Lat = [[[[[self rssParser]rssItems]objectAtIndex:i]lat] doubleValue];
    Lng = [[[[[self rssParser]rssItems]objectAtIndex:i]lng] doubleValue];
    // Creates a marker in the center of the map.
    GMSMarker *marker = [[GMSMarker alloc] init];
    marker.position = CLLocationCoordinate2DMake(Lat, Lng);
    marker.title = [[[[self rssParser]rssItems]objectAtIndex:i]header];
[mutableDictionary5 setObject:marker.title forKey:@"title"];
[arData setValue:[mutableDictionary5 valueForKey:@"title"] forKey:@"title"];
}

"arData"只获取[[self-rssParser]rssItems]objectAtIndex:i]header]的最后一个值。我确信mutableDictionary5会获取所有值,因为我在代码末尾放了以下内容,

 NSLog(@"mutableDictionary5 values=%@",[mutableDictionary5 allValues]);

它打印标题的所有值。

我知道它不应该是setvalue,但是,我尝试使用[mutableDictionary5AllValues]、"addobjects"、"allkeys"。它们不起作用。我应该怎么做才能让NSMutableArray arData添加以"title"为键的title的所有值?谢谢

抱歉我的英语不好,这不是我的母语。

您错误地使用了setValue而不是addObject

[arData addObject:mutableDictionary5]; 

如果在循环的中为init分配一个新字典,这将起作用
如果您想将数组减少为标题,请在
循环后执行此操作:

NSArray *titleArray = [arData valueForKeyPath:@"title"]; 

现在您有一个只包含标题的数组。

顺便说一句,你可以努力发明更好的变量名。注意,按照Objective-C中的惯例,变量名以低大写开头,而类名则大写。

相关内容

  • 没有找到相关文章

最新更新