当我运行此代码并按下“下一步”按钮。我得到一个错误的超额错误。我希望它做的是检查用户输入的内容是否与每次输入正确答案时给定标签的索引相比较。 例如:naam.text = @“Natriumfluoride”。然后formule.text必须在“formules”中具有与“namen”中相同的索引。检查在NSMutableArray答案
-(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];
}
任何人都知道我的问题是什么以及如何解决它?
那么,这是一个简单的解决方案!我想知道你能否告诉我为什么我必须这样做?保留它们的功能是什么? –
,因为你的数组将在viewDidLoad之后被释放并且不存在。在下一个:发件人你尝试访问它,你的应用程序崩溃。保留你说,你需要更长的对象。 – Chakalaka
好的,非常感谢你解释和解决我的问题! –