Реверсивный BOOL - PullRequest
       3

Реверсивный BOOL

3 голосов
/ 26 июля 2011

В target-c, если бы я хотел изменить значение BOOL, это сработало бы или установило бы значение BOOL на NO?

BOOL ab = YES;

ab = !ab; // would this reverse the BOOL, ab, and set it to NO?

if (ab == NO) {
    ab = !ab; // would this reverse the BOOL again and set it to YES?
}

Ответы [ 4 ]

8 голосов
/ 26 июля 2011

Да, это будет работать. BOOL это просто целое число. YES равно 1, а NO равно 0. !1 == 0 и !0 == 1.

2 голосов
/ 26 июля 2011

быстрый вопрос, быстрый ответ. да

1 голос
/ 26 июля 2011

BOOL с работают точно так, как вы описали Не то, чтобы NO было 0, а YES равно чему-либо еще (кроме NULL).

Примеры:

  1. ! ДА == НЕТ
  2. ! НЕТ == ДА
  3. ! 1 == НЕТ
  4. ! 0 == ДА
  5. ! 5 == НЕТ
0 голосов
/ 14 ноября 2013

Это правильно!

  1. ! ДА == НЕТ
  2. ! НЕТ == ДА
  3. ! 1 == НЕТ
  4. !0 == ДА
  5. ! 5 == НЕТ

Это не правильно!

FreeAsInBeer: «ДА равно чему-либо еще (кроме NULL).»- НЕ ИСТИНА

ДА равно ничему, кроме подписанного символа 1, поэтому ДА == 32626, например, возвращает false !!

...