我正在尝试创建一个本地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)