检查NSMutableArray中的答案

时间:2012-06-14 08:18:25

标签: iphone xcode compare nsmutablearray

当我运行此代码并按“下一步”按钮时。我得到了一个糟糕的超额错误。我想要它做的是检查用户输入的内容是否与给定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];
} 

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

2 个答案:

答案 0 :(得分:0)

你必须在创建后保留你的数组

[formules retain];
[namen retain];

如果您正在使用arc [NSMutableArray alloc] initWithObjects: 或者将数组定义为强属性

答案 1 :(得分:0)

我不清楚为什么你写了x = arc4random() % x;也许你可能写得像x = arc4random() % 10;。你也要检查随机值。你应该放一个应该检查每一个的for循环带有标签的数组的值。