Статус | Ожидание | Реальность |
---|---|---|
🚫 | Можно реализовать протокол с generic-ом после перехода в Swift | Generic-и на интерфейсах не поддерживаются |
Опишем интерфейс с generic-ом на Kotlin-е:
interface SocketConverter<T : Any> {
fun convert(element: String): T
}
При интеропе информация о generic-е на этом интерфейсе теряется, это видно из .h
-файла:
__attribute__((swift_name("SocketConverter")))
@protocol HHMSSocketConverter
@required
- (id)convertElement:(NSString *)element __attribute__((swift_name("convert(element:)")));
@end;
Но generic-и на интерфейсах пока не поддерживаются. В самом Swift-е создать протокол с generic-ом можно.