当我运行此代码并按“下一步”按钮时。我得到了一个糟糕的超额错误。我想要它做的是检查用户输入的内容是否与给定Label的索引进行比较,该索引在每次用户输入正确答案时都会更改。 例如: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];
}
任何人都知道我的问题是什么以及如何解决它?
答案 0 :(得分:0)
你必须在创建后保留你的数组
[formules retain];
[namen retain];
如果您正在使用arc [NSMutableArray alloc] initWithObjects: 或者将数组定义为强属性
答案 1 :(得分:0)
我不清楚为什么你写了x = arc4random() % x;
也许你可能写得像x = arc4random() % 10;
。你也要检查随机值。你应该放一个应该检查每一个的for循环带有标签的数组的值。