相关疑难解决方法(0)

在将Swift桥接到React-Native时,"不是一个公认的Objective-C方法"

我正在尝试将我的React-Native 0.33代码桥接到一个超级简单的Swift方法,遵循本指南,但我得到的只是show:(NSString *)name is not a recognized Objective-C method.

这是我的代码:

SwitchManager.swift

import Foundation

@objc(SwitchManager)
class SwitchManager: NSObject {

  @objc func show(name: String) -> Void {
    NSLog("%@", name);
  }

}
Run Code Online (Sandbox Code Playgroud)

SwitchManagerBridge.h

#import "RCTBridgeModule.h"

@interface RCT_EXTERN_MODULE(SwitchManager, NSObject)

RCT_EXTERN_METHOD(show:(NSString *)name)

@end
Run Code Online (Sandbox Code Playgroud)

SwitchManager桥接,Header.h

#import "RCTBridgeModule.h"
Run Code Online (Sandbox Code Playgroud)

然后在我的index.ios.js文件中我正在导入SwitchManager import { SwitchManager } from 'NativeModules';并调用SwitchManager.show('One');.这是错误发生的地方.

不确定是什么问题.

objective-c reactjs swift react-native

28
推荐指数
2
解决办法
6056
查看次数

如何将 Swift Promise 桥接到 React Native

我正在将 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)

bridge promise swift react-native react-native-ios

2
推荐指数
1
解决办法
1416
查看次数