我正在尝试将我的React-Native 0.33代码桥接到一个超级简单的Swift方法,遵循本指南,但我得到的只是show:(NSString *)name is not a recognized Objective-C method.
这是我的代码:
import Foundation
@objc(SwitchManager)
class SwitchManager: NSObject {
@objc func show(name: String) -> Void {
NSLog("%@", name);
}
}
Run Code Online (Sandbox Code Playgroud)
#import "RCTBridgeModule.h"
@interface RCT_EXTERN_MODULE(SwitchManager, NSObject)
RCT_EXTERN_METHOD(show:(NSString *)name)
@end
Run Code Online (Sandbox Code Playgroud)
#import "RCTBridgeModule.h"
Run Code Online (Sandbox Code Playgroud)
然后在我的index.ios.js文件中我正在导入SwitchManager import { SwitchManager } from 'NativeModules';并调用SwitchManager.show('One');.这是错误发生的地方.
不确定是什么问题.
我正在将 iOS 原生 SDK 集成到 React-Native 中。SDK.getCardData我想从 RN 中使用一个名为的函数。我的第一次尝试是在闭包内调用resolveand :reject
import Foundation
import SDK
@objc(SwiftComponentManager)
class SwiftComponentManager: NSObject {
@objc
func getCardData(_ resolve: RCTPromiseResolveBlock, rejecter reject: RCTPromiseRejectBlock) -> Void {
let cardId: String = "test"
let secret: String = "test"
SDK.getCardData(cardId, secret: secret) { (cardData, error) in
if (error != nil) {
reject(String(format: "Card data request failed: %@", error!.localizedDescription))
} else {
let pan = cardData!.pan
let cvv = cardData!.cvv
resolve(String(format: "Card data fetched successfully, …Run Code Online (Sandbox Code Playgroud)