私はこのように定義された列挙型を持っています:
typedef enum : unsigned char {
START_DELIMITER = 0xAA,
END_DELIMITER = 0xBB,
} Delimiter;
区切り文字の値を const char* の char バイトと比較すると、次のようになります。
// data is NSData;
const char *bytes = [data bytes];
if (bytes[0] == START_DELIMITER) { }
上記のテストは、bytes[0] に 0xAA が含まれていても偽です。
START_DELIMITER を const char として定義すると、比較は true になります。列挙型が既に unsigned char として定義されているにもかかわらず、列挙型に対するテストが失敗するのはなぜですか?