在 NSMutableArray 中检查答案



当我运行此代码并按"下一步"按钮时。 我得到一个严重的过量错误。我希望它做的是检查用户输入的内容是否与给定标签的索引进行比较,每次用户输入正确答案时,该索引都会发生变化。例如:naam.text =@"Natriumfluoride"。然后formule.text必须在"formules"中具有与"namen"中相同的索引。

-(IBAction)next:(id)sender {
    if ([formule.text isEqualToString:[formules objectAtIndex:x]]) {
        x = arc4random() % x;
        naam.text = [namen objectAtIndex:x];
    }
}
- (void)viewDidLoad
{
    [super viewDidLoad];
    formules = [NSMutableArray arrayWithObjects:@"NaNO3",@"NaCH3COO",@"NaCl",@"NaBr",@"NaI",@"Na2SO4",@"NaF",@"Na2S",@"NaOH",@"Na2SO3",@"Na2CO3",@"Na3PO4",@"Na2O",nil];
    namen = [NSMutableArray arrayWithObjects:@"Natriumnitraat",@"Natriumacetaat",@"Natriumchloride",@"Natriumbromide",@"Natriumjodide",@"Natriumsulfaat",@"Natriumfluoride",@"Natriumsulfide",@"Natriumhydroxide",@"Natriumsulfiet",@"NatriumCarbonaat",@"Natriumfosfaat",@"Natriumoxide", nil];
    // Do any additional setup after loading the view from its nib.
    x = arc4random() % [formules count];
    naam.text = [namen objectAtIndex:x];
} 

有人知道我的问题是什么以及如何解决它吗?

你必须

在创建后保留你的数组

[formules retain];
[namen retain];

如果您使用的是 arc,请使用 [NSMutableArray alloc] initWithObjects:或将数组定义为强属性

我不清楚你为什么要写x = arc4random() % x;也许你可以像x = arc4random() % 10;一样写.此外,您正在从随机值进行检查。你应该放一个 for 循环,它应该用你的标签检查数组的每个值。

相关内容

  • 没有找到相关文章

最新更新