2015-03-18 2 views
0

Я переношу некоторый код объектива-c в Swift. Мне нужно проверить битовую маску, но я получаю сообщение об ошибке:Использование Objective-C bitmask в Swift

MCOMessageFlag is not convertible to Bool

Как я должен быть доступ к этим от Swift.

self.message.flags = NSNumber(int: self.message.flags.intValue & ~MCOMessageFlag.Flagged) 

Я пользуюсь библиотекой MailCore2.

Edit:

Вот линия Objective-C Я портировании:

[self.message setFlags:[NSNumber numberWithInt: self.message.flags.intValue & ~MCOMessageFlagFlagged]]; 

Edit:

RawOptionSetType no longer implements BooleanType by default, so standard bitmask checks (if opt & .Option {...) only work if you add BooleanType protocol conformance manually.

Я предполагаю, что это моя проблема.

ответ

0

Вы можете использовать .rawValue, чтобы получить значение, которое нужно:

MCOMessageFlag.Flagged.rawValue 
+0

Это была моя первая мысль, но это не помогло. Ошибка просто изменилась на: '' 'Int не конвертируется в Bool'''. Я добавил строку цели-c, которую я переношу, если это поможет. –

+0

Флаги - NSNumber. –

+0

CMD-Нажмите «MCOMessageFlag», чтобы увидеть определение. Это может дать ключ. –

 Смежные вопросы

  • Нет связанных вопросов^_^