0

将两个 NSMutableArrays 添加到 NSMutableDictonary 中,我有点困惑,
一个用于键,一个用于对象。
只要键不相同,这就是有效的。
如果有偶数,我只会得到我的字典中的最后一个对象。
如果我将键更改为对象并将对象更改为键,则一切正常。
任何人都可以帮助我吗?

这是我的输出:

2012-12-08 19:30:40.906 Test[12015:c07] myKeys: (
"Bauchumfang & Gewicht",
"Bauchumfang & Gewicht",
"Stress & Entspannung",
"Stress & Entspannung",
"Mein Rauchverhalten",
"Mein Rauchverhalten",
"Blutdruck & Puls",
"Blutdruck & Puls",
"Blutzucker & Diabetes",
"Blutzucker & Diabetes",
"Meine Stimmung",
"Meine Stimmung",
"R\U00fccken & Bewegung",
"R\U00fccken & Bewegung",
"R\U00fccken & Bewegung",
Schlafrhythmus,
Schlafrhythmus,
"Schrittz\U00e4hler"
)
2012-12-08 19:30:40.907 Test[12015:c07] myObjects: (
"Mein Bauchumfang",
"Mein Gewicht",
"Mein Entspannungsniveau",
"H\U00e4ufigkeit der Entspannungsmomente",
Rauchverhalten,
"Verlangen nach einer Zigarette",
"Systolischer Wert",
"Diastolischer Wert",
"Meine bewusste Ern\U00e4hrung mit Diabetes",
"Meine Blutzucker-Werte",
"Mein Befinden",
"Meine Aktivit\U00e4ten",
"Umsetzung meiner R\U00fccken\U00fcbungen",
"Das Befinden meines R\U00fcckens",
"Meine sportlichen Aktivit\U00e4ten",
"Meine Schlafqualit\U00e4t",
"Mein Energieniveau",
"Meine Schritte"
)
2012-12-08 19:30:40.907 Test[12015:c07] myDictionary: {
"Bauchumfang & Gewicht" = "Mein Gewicht";
"Blutdruck & Puls" = "Diastolischer Wert";
"Blutzucker & Diabetes" = "Meine Blutzucker-Werte";
"Mein Rauchverhalten" = "Verlangen nach einer Zigarette";
"Meine Stimmung" = "Meine Aktivit\U00e4ten";
"R\U00fccken & Bewegung" = "Meine sportlichen Aktivit\U00e4ten";
Schlafrhythmus = "Mein Energieniveau";
"Schrittz\U00e4hler" = "Meine Schritte";
"Stress & Entspannung" = "H\U00e4ufigkeit der Entspannungsmomente";
}

和我的实现:

- (void)objectLoader:(RKObjectLoader *)objectLoader
didLoadObjects:(NSArray *)objects {

  menuItems = [[NSMutableArray alloc]init];
  for (Trackers *trackers in objects) {

    if ([trackers.assigned isEqualToString:@"true"]) {
        [menuItems addObject:[trackers name]];
        [groups addObject:[trackers category]];
    }

  }
  NSLog(@"myKeys: %@", groups);
  NSLog(@"myObjects: %@", menuItems);
  NSMutableDictionary *menuGroups = [[NSMutableDictionary alloc]
  initWithObjects:menuItems forKeys:groups];
  NSLog(@"myDictionary: %@", menuGroups);
  [menuList addObject:menuGroups];
  contentLoaded = YES;
  [settingsTable reloadData];
}

感谢您的帮助。

4

1 回答 1

3

好吧,每个定义的字典在查看代码时不允许重复键,您希望将 N 个项目存储在同一个键下。

为此,您需要为每个键存储一组项目.. UNTESTED 示例(内联编写)

- (void)objectLoader:(RKObjectLoader *)objectLoader
didLoadObjects:(NSArray *)objects {
  NSMutableDictionary *menuGroups = [[NSMutableDictionary alloc] init];
  for (Trackers *trackers in objects) {

    if ([trackers.assigned isEqualToString:@"true"]) {
        NSMutableArray *array = [menuGroups objectForKey:[trackers category]];
        if(!array) {
            array = [NSMutableArray array];
            [menuGroups setObject:array forKey:[trackers category]];
        }
        [array addObject:[trackers name]];
    }

  }


  contentLoaded = YES;
  [settingsTable reloadData];
}
于 2012-12-08T18:55:59.437 回答