Некоторые вопросы о побитовых операторах

Я читал сегодня о побитовых операторах, и они кажутся мне довольно удобными. Я также заметил, что Apple тоже их использует, например, с UIViewAutoresizing .

В моем приложении мне нужно отслеживать семь дней недели. Каждый день можно включить или отключить. Раньше у меня было семь BOOL , но теперь я пытаюсь использовать для этого одно целое число:

enum {
    DaysMonday = 1 << 0,
    DaysTuesday = 1 << 1,
    DaysWednesday = 1 << 2,
    DaysThursday = 1 << 3,
    DaysFriday = 1 << 4,
    DaysSaturday = 1 << 5,
    DaysSunday = 1 << 6
};
typedef NSUInteger Days;

Мой вопрос: как мне теперь включить / отключить эти значения? Я знаю, что могу проверить переменную days для определенного дня следующим образом:

if (days & DaysThursday) {
    // thursday enabled
}

Но как мне ..

  1. включить четверг?
  2. отключить четверг?
  3. переключить четверг?
  4. включить все?
  5. отключить все?

Спасибо. [Thread 0xb0bd4b70 (...

При отладке программы, которая завершается с ошибкой segfault, электрическое ограждение в сочетании с gdb возвращает следующее:

«ElectricFence Exiting: mprotect () failed: Cannot allocate memory [Поток 0xb0bd4b70 (LWP 5363) завершен] Программа завершилась с кодом 0377.

Я действительно думал, что электрический забор будет более полезным. Что это значит? Как я могу интерпретировать эту информацию? Кажется, не осталось ни одного стека, на который я мог бы взглянуть, или, по крайней мере, bt ничего не вернет.

Любое предложение будет очень признательно.

Спасибо!

8
задан jww 3 September 2016 в 02:25
поделиться