Swift 模块 React Native 上出现奇怪问题“在范围内找不到类型‘RCTResponseSenderBlock’”

Max*_*Max 10 objective-c swift react-native

我有一个非常奇怪的问题:“在范围内找不到 RCTResponseSenderBlock 类型。” 这很奇怪,因为在一种情况下它存在,而在另一种情况下它不存在,看起来像一个错误。

是截图问题。

这是我的 Objective-C 文件:

#import <Foundation/Foundation.h>
#import "React/RCTBridgeModule.h"
#import <React/RCTEventEmitter.h>
#import <React/RCTConvert.h>

@interface RCT_EXTERN_MODULE(BLEclass, NSObject)

RCT_EXTERN_METHOD(addEvent:(NSString *)name callback:(RCTResponseSenderBlock)callback )

@end
Run Code Online (Sandbox Code Playgroud)

这是我的 Swift 文件,我遇到了问题:

import Foundation

@objc(BLEclass)
class BLEclass: NSObject{
  @objc(addEvent:callback:)
    func addEvent(_ name: String,_ callback:RCTResponseSenderBlock){
      NSLog("%@", name);
      let resultsDict = [
           "name" : name
           ];
      callback([NSNull(),resultsDict])
     }
}

Run Code Online (Sandbox Code Playgroud)

如果您知道如何解决它,请写下答案。

谢谢。

小智 21

我遇到了同样的问题,发现我必须将导入添加到我的主桥文件中。

#import <React/RCTBridgeModule.h>
#import <React/RCTViewManager.h>
Run Code Online (Sandbox Code Playgroud)

我通过查看Swift Compiler - General -> Objective-C Bridging Header下的构建设置来确定设置了哪个文件,这似乎是应用程序的默认设置。