Всем привет
Оптимизирую плагин с нативным кодом, пришел к использованию
https://pub.dev/packages/pigeon
Он генерирует и нативный и dart код для общения бинарными данными (заменя MethodChannel с накладным json форматом)
Переходя ближе к делу: генерирует он базовый класс для наследования в нативной реализации и в зависимости от дополнительного декоратора async генерирует методы по разному
Если указать async: (swift)
```
public
func renderPageMessage(_ message: RenderPageMessage?, completion:
@escaping@escaping (RenderPageReply?, FlutterError?) -> Void) {
<#code#>
}
```
и проблем не каких нету, в аргументах приходит каллбэк с 2 позиционными парасетрами - результат и ошибка, вызываю его и в зависимости от ситуации в ненужном месте отправляю nil, в нужном данные
НО
реализация синхронного метода меня вводит в ступор: (swift)
```
public
func closeDocumentMessage(_ message: IdMessage, error: AutoreleasingUnsafeMutablePointer<FlutterError?>) {
<#code#>
}
```
Как вернуть результат очевидно - return
но вот как отправить ошибку не догоняю. Аргументом приходит указатель
error
- но вот как его использовать представления не имею, достаточно слаб в swift
Буду рад любой помощи с:
UPD: пример такого сгенерированного файла
https://github.com/yuanzhiying/flutter_pigeon_plugin/blob/50c8b24204891b4a4a49145a43921178c7cd4d93/ios/Classes/SwiftFlutterPigeonPlugin.swift#L23