Ваша проблема очевидна, вы проходите цикл for, изменяющий numLit, вы хотите, чтобы селекторы выполнялись за одну секунду, к тому времени, когда первый селектор сработает, вы уже изменили numLit на последнее число, и поэтому все из огней изменить последнюю кнопку ... Вы должны исправить это, передав число в buttonUnlit, таким образом, вы не зависите от переменной класса, которую вы продолжаете изменять ... что-то вроде
- (void)buttonUnLit:(NSNumber*)number
{
int numLitInt = [number intValue];
if (numLitInt == 0)
{
[button0 setImage:[UIImage imageNamed:@"0.png"] forState:UIControlStateNormal];
return;
}else if (numLitInt == 1)
{
[button1 setImage:[UIImage imageNamed:@"1.png"] forState:UIControlStateNormal];
return;
}else if (numLitInt == 2)
{
[button2 setImage:[UIImage imageNamed:@"2.png"] forState:UIControlStateNormal];
return;
}else if (numLitInt == 3)
{
[button3 setImage:[UIImage imageNamed:@"3.png"] forState:UIControlStateNormal];
return;
}else if (numLitInt == 4)
{
[button4 setImage:[UIImage imageNamed:@"4.png"] forState:UIControlStateNormal];
return;
}else if (numLitInt == 5)
{
[button5 setImage:[UIImage imageNamed:@"5.png"] forState:UIControlStateNormal];
return;
}else if (numLitInt == 6)
{
[button6 setImage:[UIImage imageNamed:@"6.png"] forState:UIControlStateNormal];
return;
}else if (numLitInt == 7)
{
[button7 setImage:[UIImage imageNamed:@"7.png"] forState:UIControlStateNormal];
return;
}else if (numLitInt == 8)
{
[button8 setImage:[UIImage imageNamed:@"8.png"] forState:UIControlStateNormal];
return;
}else if (numLitInt == 9)
{
[button9 setImage:[UIImage imageNamed:@"9.png"] forState:UIControlStateNormal];
return;
}else if (numLitInt == 10)
{
[button10 setImage:[UIImage imageNamed:@"10.png"] forState:UIControlStateNormal];
return;
}else if (numLitInt == 11)
{
[button11 setImage:[UIImage imageNamed:@"11.png"] forState:UIControlStateNormal];
return;
}
}
и
- (IBAction)buttonPushed:(id)sender;
{
//creat random array of buttons
[self randomArray];
float dalay=1.0f;
//loop through each button in array and turn them on and off
for (NSString *i in gameArray)
{
int butNum = [i intValue];
NSNumber *num = [[NSNumber alloc] initWithInt:butNum];
//turn button on
[self buttonLit];
//turn button off
[self performSelector:@selector(buttonUnLit) withObject:num afterDelay:delay];
delay+=0.5f;
[num release];
}
}