У нас есть существующее приложение React Native, написанное с использованием Objective-C.Мне было поручено преобразовать синтаксис Objective C в Swift.
Часть работы заключалась в том, чтобы гарантировать, что мост React Native инкапсулирован в одном месте и ссылается на внешние методы в классах Swift «Manager».
Ранее у нас был файл с именем «CameraManager», который был открыт для React Native и имел следующий метод:
RCT_REMAP_METHOD(takePicture, imageSaved:(RCTPromiseresolveBlock)resolve failedSavingImage:(RCTPromiseRejectBlock)reject) { ... }
Я хочу преобразовать его в нечто вроде
@interface RCT_EXTERN_MODULE(CameraViewManager, NSObject)
RCT_EXTERN_METHOD(takePicture: imageSaved:(RCTPromiseResolveBlock *)resolve failedSavingImage:(RCTPromiseRejectBlock *)reject)
@end
Это прекрасно компилируется, но когда в приложении выполняется вызов takePicture
, выдается следующее исключение.
Исключение: 'takePicture :: failedSavingImage: не является распознанным Objective-С метод ».был брошен во время вызова takePicture на целевой CameraViewManager с параметрами (...)
В моем файле CameraViewManager.swift
есть следующее:
@objc
func takePicture(imageSaved resolve: @escaping RCTPromiseResolveBlock, failedSavingImage reject: RCTPromiseRejectBlock) -> Void { ... }
Общее знакомство с React Nativeвсе еще немного меньше оптимального, поэтому я не уверен, что именно нужно для этого.
Есть идеи?