Мой вопрос заключается в основном о том, как интерпретировать ЬурейеЕ перечисление, но вот фон:Как Интерпретировать ЬурейеЕ перечислимую собственности на MCOIMAPMessage
Я использую MailCore2, и я пытаюсь выяснить, как читать флаги от отдельного объекта электронной почты, который я получаю.
Каждое электронное письмо MCOIMAPMessage *, которое я получаю, имеет свойство на нем, называемое флажками. Флаги имеют тип MCOMessageFlag. Когда я смотрю на определение MCOMessageFlag, я считаю, что это ЬурейеЕ перечисление:
typedef enum {
MCOMessageFlagNone = 0,
/** Seen/Read flag.*/
MCOMessageFlagSeen = 1 << 0,
/** Replied/Answered flag.*/
MCOMessageFlagAnswered = 1 << 1,
/** Flagged/Starred flag.*/
MCOMessageFlagFlagged = 1 << 2,
/** Deleted flag.*/
MCOMessageFlagDeleted = 1 << 3,
/** Draft flag.*/
MCOMessageFlagDraft = 1 << 4,
/** $MDNSent flag.*/
MCOMessageFlagMDNSent = 1 << 5,
/** $Forwarded flag.*/
MCOMessageFlagForwarded = 1 << 6,
/** $SubmitPending flag.*/
MCOMessageFlagSubmitPending = 1 << 7,
/** $Submitted flag.*/
MCOMessageFlagSubmitted = 1 << 8,
} MCOMessageFlag;
Поскольку я не знаю, как ЬурейеЕ перечислений действительно работает - особенно это один с «= 1 < < 8» компонентов типа , Я немного потерял о том, как читать свойства флагов электронной почты.
Например, у меня есть сообщение электронной почты, на котором есть как MCOMessageFlagSeen, так и MCOMessageFlagFlagged на сервере. Я хотел бы узнать из свойства email.flags, имеет ли одно из них получаемое письмо, оба или ни один из этих флагов (если это возможно). Тем не менее, в отладчике, когда я печатаю «email.flags» для письма с двумя указанными выше флагами, я возвращаю только номер 5. Я не вижу, как это относится к определениям перечисления typedef выше.
В конечном счете, я хочу установить значение BOOL в зависимости от наличия или отсутствия флага. Другими словами, я хотел бы сделать что-то вроде:
BOOL wasSeen = email.flags == MCOMessageFlagSeen;
BOOL isFlagged = email.flags == MCOMessageFlagFlagged;
Конечно, это не сработает, но это идея. Может ли кто-нибудь предложить, как я могу это сделать и/или как понять перечисление typedef?
Спасибо, что было очень полезно. – jac300