Objective c 是否将NSMutableDictionary与NSMutableDictionary一起添加到NSMutableArray?
我的问题是试图弄清楚我将如何实施这个过程 我有一个问题列表,其中会有分配给它的策略,策略中会有工具Objective c 是否将NSMutableDictionary与NSMutableDictionary一起添加到NSMutableArray?,objective-c,arrays,Objective C,Arrays,我的问题是试图弄清楚我将如何实施这个过程 我有一个问题列表,其中会有分配给它的策略,策略中会有工具 问题1 战略1 工具1 工具2 工具3 战略2 工具1 工具2 战略3 工具1 工具2 工具3 工具4 问题2 战略1 工具1 工具2 工具3 战略2 工具1 战略3 工具1 工具2 工具3 我想完全像上面的示例一样实现它,但使用NSMutableArray和NSMutableDictionary 您可以看到,每个问题都有一个策略,每个策略至少有一个工具,最多5
- 问题1
- 战略1
- 工具1
- 工具2
- 工具3
- 战略2
- 工具1
- 工具2
- 战略3
- 工具1
- 工具2
- 工具3
- 工具4
- 战略1
- 问题2
- 战略1
- 工具1
- 工具2
- 工具3
- 战略2
- 工具1
- 战略3
- 工具1
- 工具2
- 工具3
- 战略1
非常感谢您的帮助!我在网上查过,似乎找不到任何关于这方面的可靠文章,所以我想为其他遇到类似这样复杂阵列的人提供一个可靠的答案。好的,我想我明白你在这里想做什么了。所以基本上,你要在一系列问题的每个索引中,在一系列策略的每个索引中,放置一系列工具。比如:
- 问题1
- 战略1
- 工具1
- 工具2
- 战略2
- 工具1
- 战略1
- 问题2
- 战略1
- 工具1
- 工具2
- 战略2
- 工具1
- 战略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];
}
在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对象,其中
{}
是一个字典,[]
是一个数组。“…这将是NSMutable。”NSMutable什么?不要介意。。。我不知道你的问题是什么。“NSMutable”与“NS”相对,duh.NSMutable意味着数组中的对象将不是静态的,而是动态的,并且经常添加和删除。在本例中,代码部分向您展示了问题列表是NSMutableArray,其中的另外两个对象是NSMutableDictionary……我希望您能清楚这一点@tblue谢谢您的讲座。我碰巧在每个OSX应用程序中使用了NSMutableDictionary的NSMutableArray。如果你的问题很清楚,你可能不会得到2张反对票,其中没有一张是我的。(你找不到一个“公式”。这是编程。你必须根据你的要求设计它。忘记烹饪书。)我在那里得到了这个,但它显示为问题1>工具1,工具2。没有策略,这有点奇怪。你确定你准确地复制了代码吗?你能发布你到目前为止所做的吗?因为代码很长,而且很可能是反复联系,我们能在这里完成吗:谢谢@HotLicks,这真的帮了我的忙。你也证明了最好的一点,我进入这个行业是为了构建和实现我以前没有过的东西,我正在完全采用这种方法。没有烹饪书,只有一位厨师……谢谢@KeeanoMartin-解决问题的最大挑战往往是找出如何描述它。
[
{"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" }
]
}
]