В коде:
if ((total == (total1 && total2 && total3)))
{
[scrollview.contentOffset = CGPointMake (0,0)];
}
Когда, если выражение вычисляется, (total1 && total2 && total3)
оценивается первым. И это может быть либо YES
, либо NO
(true или false, если вы предпочитаете), или (0 или 1).
Так что ваш код эквивалентен следующему:
BOOL allVariablesAreNotZero = total1 && total2 && total3;
if (total == allVariablesAreNotZero)
{
[scrollview.contentOffset = CGPointMake (0,0)];
}
Edit после того, как вопрос был лучше объяснить
Сделайте ваши кнопки выполняют следующие действия при нажатии:
- (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 кнопок. Здесь я использовал bitwise operators|
и <<
.
Вам нужно объяснить, какие значения итоговые, total1, total2 и total3 могут иметь. –
там вы идете. надеюсь, что это поможет найти ответ на мой вопрос. – SeongHo
Сколько у вас кнопок? Что происходит, когда пользователь нажимает эти кнопки, кроме других? Что происходит, когда пользователь нажимает одну из этих кнопок два или более раза? – sch