我的应用程序中有一个对象数组。
NSMutableArray *questions = [[NSMutableArray alloc] init];
[questions addObject:[self addQuestion:@"QUESTION 1" option1:@"ans1" option2:@"ans2" option3:@"ans3" option4:@"ans4" option5:@"ans5" answer:2]];
[questions addObject:[self addQuestion:@"QUESTION 2" option1:@"ans1" option2:@"ans2" option3:@"ans3" option4:@"ans4" option5:@"ans5" answer:2]];
在我看来,我有 6 个不同的标签。一个用于问题,其他用于选项。但是,我无法弄清楚如何到达第一个对象的“选项 2”,以便我可以将其内容放入标签?
最佳答案
使用 NSDictionary(或 NSMutableDictionary)!或者创建一个自定义类!有很多很好的方法可以有效、安全地解决这个问题,您需要权衡您的选择。除非你的方法的返回值确实是一个对象(如 NSMutableDictionary),否则你现在所拥有的肯定不会起作用。
如果你选择使用字典,你可能会这样处理
NSMutableDictionary *question = [[NSMutableDictionary alloc] initWithCapacity:7];
[question setObject:@"Ask a question" forKey:@"question"];
[question setObject:@"Option 1" forKey:@"1"];
[question setObject:@"Option 2" forKey:@"2"];
[question setObject:@"Option 3" forKey:@"3"];
[question setObject:@"Option 4" forKey:@"4"];
[question setObject:@"Option 5" forKey:@"5"];
[question setObject:@"2" forKey:@"Answer"];
//Keep in mind, the numbers in these dictionary entries are treated as strings
然后您可以将此字典添加到数组中:
[questions addObject:question];
要访问任何给定问题词典对象的正确答案,您可以调用:
NSString *answer = [question objectForKey:[question objectForKey:@"Answer"]];
..将返回一个字符串:“Option 2.”
要访问要放入标签中的选项文本:
NSString *option = [question objectForKey:@"2"];
..这也会返回一个字符串:“Option 2.”
希望这有帮助,很乐意详细说明。
关于objective-c - 如何访问对象数组的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11971007/