-2

我的问题是试图弄清楚我将如何实施这个程序。

我有一个问题列表,其中将分配策略,并且策略将有工具。

  • 问题 1
    • 策略一
      • 工具 1
      • 工具 2
      • 工具 3
    • 策略二
      • 工具 1
      • 工具 2
    • 策略三
      • 工具 1
      • 工具 2
      • 工具 3
      • 工具 4
  • 问题2
    • 策略一
      • 工具 1
      • 工具 2
      • 工具 3
    • 策略二
      • 工具 1
    • 策略三
      • 工具 1
      • 工具 2
      • 工具 3

我想像上面的例子一样实现这个,但使用 NSMutableArray 和 NSMutableDictionary。

您可以看到每个问题都有一个策略,每个策略至少有 1 个工具,最多 5 个。一个问题可以有无限数量的策略。

任何帮助是极大的赞赏!我在网上看过,似乎找不到任何可靠的文章,所以我想为遇到像这样的复杂数组的其他人提供可靠的答案。

4

2 回答 2

1

好的,我想我明白你在这里想要做什么。因此,基本上,您试图将一组工具放在一组问题的每个索引中的一组策略的每个索引中。所以像:

  • 问题 1
    • 策略一
      • 工具 1
      • 工具 2
    • 策略二
      • 工具 1
  • 问题2
    • 策略一
      • 工具 1
      • 工具 2
    • 策略二
      • 工具 1

代码应该是这样的:

NSMutableDictionary *toolDict = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"tool1 info",@"tool1 key", @"tool2 info", @"tool2 key", nil];
NSMutableDictionary *stratDict = [[NSMutableDictionary alloc] initWithObjects:[NSArray arrayWithObjects:toolDict,toolDict,toolDict, nil] forKeys:[NSArray arrayWithObjects:@"strat1 key",@"strat2 key",@"strat3 key", nil]];

//loop through # of questions and add strat dict to each
NSMutableArray *QuestionList = [[NSMutableArray alloc] init];
for (int i = 0; i < #ofQuestions; i++) {
    [QuestionList addObject:stratDict];
}

在此示例中,如果您想访问问题 1 中策略 1 的工具 1,您将执行以下操作:

[[[QuestionList objectAtIndex:0] objectForKey:@"strat1 key"] objectForKey:@"tool1 key"];
于 2013-06-27T04:21:17.470 回答
0

在 JSON 中:

[
  {"Question_id": "Question 1",
   "Strategies" : [
     {"Strategy_id" : "Strategy 1",
      "Tools" : [
        {"Tool_id" : "Tool 1",
         "Tool_attr" : "sharp" },
        {"Tool_id" : "Tool 2",
         "Tool_attr" : "dull" },
        {"Tool_id" : "Tool 1",
         "Tool_attr" : "green" }
        ]
      },
     {"Strategy_id" : "Strategy 2",
      "Tools" : [
        {"Tool_id" : "Tool 5",
         "Tool_attr" : "pointy" },
        {"Tool_id" : "Tool 6",
         "Tool_attr" : "blunt" },
        {"Tool_id" : "Tool 7",
         "Tool_attr" : "red" }
        ]
      }
    },
  {"Question_id": "Question 2",
   "Strategies" : [
     {"Strategy_id" : "Strategy 5",
      "Tools" : [
        {"Tool_id" : "Tool 1",
         "Tool_attr" : "sharp" },
        {"Tool_id" : "Tool 2",
         "Tool_attr" : "dull" },
        {"Tool_id" : "Tool 1",
         "Tool_attr" : "green" }
        ]
      },
     {"Strategy_id" : "Strategy 6",
      "Tools" : [
        {"Tool_id" : "Tool 5",
         "Tool_attr" : "pointy" },
        {"Tool_id" : "Tool 6",
         "Tool_attr" : "blunt" },
        {"Tool_id" : "Tool 7",
         "Tool_attr" : "red" }
        ]
      }
   ]

这直接映射到 NSDictionary/Array 对象,其中{}是字典和[]数组。

于 2013-06-27T21:42:14.530 回答