У меня есть Swift enum вот так:
@objc public enum Status: Int {
case unknown;
case ok;
case failed;
}
Он правильно соединен с Objective- C, и я могу использовать его, как, скажем, StatusUnknown
в Objective- C.
Теперь у меня есть функция с обратным вызовом:
+ (void)fetch:(void (^_Nonnull)(BOOL success))completion
И все, что я хочу, это заменить BOOL
на мое Status
перечисление. Как это сделать?
Очевидно, что это не так:
+ (void)fetch:(void (^_Nonnull)(Status success))completion // Error: Unknown type name
Я мог бы использовать NSInteger
так:
+ (void)fetch:(void (^_Nonnull)(NSInteger success))completion
, но тогда это не совсем ограничивающие значения to enum.
Итак, как лучше передать здесь enum?
Примечание:
- Я упростил вопрос, в действительности enum не называется status и имеет гораздо больше значений.
- Подпись функции должна соответствовать предыдущей подписи, но с другим аргументом