React native swift 模块中的回调函数



我正在尝试创建一个本机 swift 模块,其中包含一个可以在我的 JavaScript 代码中调用的函数。目前我有我的module.swift文件、module.m文件和桥接标头。

这是我的模块.swift:

import Foundation
@objc(MyModule)
class MyModule: NSObject {
@objc func callbackMethod(callback: RCTResponseSenderBlock) -> Void {
let resultsDict = [
"success" : true
];
callback([NSNull() ,resultsDict])
}
}

这是MyModule.m:

#import <Foundation/Foundation.h>
// CalendarManagerBridge.m
#import <React/RCTBridgeModule.h>
#import <React/RCTEventEmitter.h>
@interface RCT_EXTERN_MODULE(MyModule, NSObject)
RCT_EXTERN_METHOD(callbackMethod:(RCTResponseSenderBlock)callback)
@end

这是桥接标头:

#import React/RCTBridgeModule.h
#import React/RCTEventEmitter.h

最后,这是我在javascript中的调用:

const { MyModule } = require('NativeModules');
MyModule.callbackMethod((err,r) => console.log(r));

问题是每当我运行项目时,它都会导致错误:

Exception 'callbackMethod:(RCTResponseSenderBlock)callback is not a recognized Objective-c
method.' 

但是,我找不到文档的任何错误。有人可以提供一些帮助吗?

出于某种原因,我们现在需要为方法编写不同的@objc部分。

改变

@objc func callbackMethod(callback: RCTResponseSenderBlock) -> Void {
let resultsDict = [
"success" : true
];
callback([NSNull() ,resultsDict])

@objc(callbackMethod:)
func callbackMethod(callback: RCTResponseSenderBlock) -> Void {
let resultsDict = [
"success" : true
];
callback([NSNull() ,resultsDict])

最新更新