我正处于学习如何编码的开始阶段,而我正试图找出问题所在。我创建了一个包含4个对象的数组,然后创建了一个空的可变字典。现在我必须将我的数组中的值添加为我的可变字典中的对象,我无法弄清楚如何做到这一点。这就是我想出的错误,我知道它只是简单的语法,但我无法在线找到答案。
NSArray *shoeOrder = @[@"Charles Smith", @(9.5), @"loafer", @"brown"];
NSMutableDictionary *shoeOrderDict = [[NSMutableDictionary alloc] init];
[shoeOrderDict setObject: @[shoeOrder objectAtIndex: 0] forKey: @"customer"];
[shoeOrderDict setObject: @[shoeOrder objectAtIndex: 1] forKey: @"size"];
[shoeOrderDict setObject: @[shoeOrder objectAtIndex: 2] forKey: @"style"];
[shoeOrderDict setObject: @[shoeOrder objectAtIndex: 3] forKey: @"color"];
感谢您的帮助!
答案 0 :(得分:1)
当您提出这样的问题时,您已经尝试了某些内容并且编译器"会出现错误",您通常应该显示错误。它可以帮助我们。
那就是说,这个案子的问题是无关紧要的" @"以下行中的字符:
[shoeOrder objectAtIndex: 0]
像objectAtIndex:
这样的表达式是一个消息发送表达式。它将带有参数0
的消息shoeOrder
发送到对象@
。表达式不需要也不应该有前导[shoeOrderDict setObject: [shoeOrder objectAtIndex: 0] forKey: @"customer"];
[shoeOrderDict setObject: [shoeOrder objectAtIndex: 1] forKey: @"size"];
[shoeOrderDict setObject: [shoeOrder objectAtIndex: 2] forKey: @"style"];
[shoeOrderDict setObject: [shoeOrder objectAtIndex: 3] forKey: @"color"];
。
所以,你的代码应该是:
for (int i = 0; i != amount.Length; i++)
{
if (amount[i] > 0)
{
string button = "Button" + i;
Button[i].Visible = true;
}
}
答案 1 :(得分:0)
好吧,请在@ [shoeOrder objectAtIndex:0]中删除@。 ....
[shoeOrderDict setObject:[shoeOrder objectAtIndex: 0] forKey: @"customer"];
[shoeOrderDict setObject:[shoeOrder objectAtIndex: 1] forKey: @"size"];
[shoeOrderDict setObject:[shoeOrder objectAtIndex: 2] forKey: @"style"];
[shoeOrderDict setObject:[shoeOrder objectAtIndex: 3] forKey: @"color"];
...