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

import Foundation

@objc(MyModule)
class MyModule: NSObject {

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

    callback([NSNull() ,resultsDict])
  }

}

这是我的模块。m:
import Foundation

@objc(AskPermissions)
class AskPermissions: NSObject {

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

}

这是桥接头:
#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.'

但是,我找不到文件有什么问题。有人能帮忙吗?

最佳答案

尝试添加下划线:
callbackMethod(_ callback: RCTResponseSenderBlock)

09-25 16:16