Если-еще не выполняется блок, когда bool имеет значение true?
С таким же успехом это может быть что-то глупое, что я пропустил, но взгляните на этот код: (который был сокращен до просто функциональности отладки, хотя фактическое имя метода было оставлено без изменений)
-(BOOL)shouldHideStatusBarItem:(BOOL)showItem{
if (showItem == YES) {
NSBeep();
NSLog(showItem ? @"YES(inloop)" : @"NO(inloop)" );
}
else if (showItem == NO){
NSBeep();
NSLog(showItem ? @"YES(inloop)" : @"NO(inloop)" );
}
NSLog(showItem ? @"YES" : @"NO" );
return showItem;
}
Когда я перехожу в ДА, это регистрирует:
YES
Когда я прохожу в НЕТ, это регистрирует:
NO(inloop)
NO
Очевидно, что когда я передаю ДА, он ДОЛЖЕН войти:
YES(inloop)
YES
У кого-нибудь есть идеи?
2 ответа
Решение
Измените свой код, чтобы просто проверить правду showItem
переменная. BOOL
тип на самом деле не ограничен значениями YES
а также NO
,
if (showItem)
{
...
}
else
{
...
}
Вариант ответа Лакеша
-(BOOL)shouldHideStatusBarItem:(BOOL)showItem{
if (showItem) {
} else {
}
NSBeep();
NSLog(showItem ? @"YES" : @"NO" );
return showItem;
}