Вызов Swift-кода из Kotlin MultiplatformIOS

Программируем под IOS
Ответить
Anonymous
 Вызов Swift-кода из Kotlin Multiplatform

Сообщение Anonymous »

У меня есть простой класс Swift:

Код: Выделить всё

@objc public class Wallet: NSObject {
@objc public func getPrivateKey() -> String {
return ""
}
}
которому я хотел бы позвонить из Котлина. Я также создал связующий заголовок, который выглядит следующим образом:

Код: Выделить всё

#ifndef iosApp_Bridging_Header_h
#define iosApp_Bridging_Header_h

#import "iosApp-Swift.h"

#endif /* iosApp_Bridging_Header_h */
и связал его с именем заголовка сгенерированного интерфейса Objective-C
В многоплатформенном проекте Kotlin я определил класс ожидания в общем модуле проекта следующим образом :

Код: Выделить всё

expect class WalletMP() {
fun getPrivateKey() : String
}
и в модуле iosMain я определил фактический класс следующим образом:

Код: Выделить всё

actual class WalletMP actual constructor() {
actual fun getPrivateKey(): String {
return ""
}
}
Теперь, насколько я понимаю, я смогу вызвать класс быстрого кошелька, просто определив:

Код: Выделить всё

val wallet = Wallet()
но класс Swift не виден/не доступен в Котлине. Даже если я определяю заголовок моста следующим образом:

Код: Выделить всё

#ifndef iosApp_Bridging_Header_h
#define iosApp_Bridging_Header_h

#import 

@interface Wallet: NSObject
-(NSString*)getPrivateKey;
@end

#endif /* iosApp_Bridging_Header_h */
Проблема та же. Что мне не хватает? Я забыл что-то установить? Буду очень признателен за любую помощь.

Подробнее здесь: https://stackoverflow.com/questions/775 ... tiplatform
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»