В вашем коде:
if ((total == (total1 && total2 && total3)))
{
[scrollview.contentOffset = CGPointMake (0,0)];
}
Когда вычисляется выражение if, (total1 && total2 && total3)
вычисляется первым.И это может быть либо YES
или NO
(true или false, если вы предпочитаете), либо (0 или 1).
Так что ваш код эквивалентен следующему:
BOOL allVariablesAreNotZero = total1 && total2 && total3;
if (total == allVariablesAreNotZero)
{
[scrollview.contentOffset = CGPointMake (0,0)];
}
Редактировать после того, как вопрос был лучше объяснен
При нажатии кнопок заставить выполнять следующие действия:
- (void)buttonClicked:(id)sender
{
UIButton *button = (UIButton *)sender;
buttonsCombination = buttonsCombination | (1 << button.tag);
}
Где buttonsCombination
- NSUInteger.Затем используйте следующий тест, чтобы увидеть, являются ли нажатые кнопки правильными (я делаю это с тремя кнопками, но вы догадываетесь об идее)
NSUInteger correctCombination = (1 << button1) | (1 << button2) | (1 << button3)
if (buttonsCombination == correctCombination) {
// The combination is correct
} else {
// The combination is incorrect
}
buttonsCombination = 0;
Наконец, обратите внимание, что это работает, потому что естьдостаточно битов в NSUInteger для 30 кнопок.Здесь я использовал побитовые операторы |
и <<
.