【发布时间】:2016-09-25 21:56:12
【问题描述】:
我正在尝试将我的 React-Native 0.33 代码桥接到一个超级简单的 Swift 方法,遵循this guide,但我得到的只是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);
}
}
SwitchManagerBridge.h
#import "RCTBridgeModule.h"
@interface RCT_EXTERN_MODULE(SwitchManager, NSObject)
RCT_EXTERN_METHOD(show:(NSString *)name)
@end
SwitchManager-Bridging-Header.h
#import "RCTBridgeModule.h"
然后在我的index.ios.js 文件中,我使用import { SwitchManager } from 'NativeModules'; 导入SwitchManager 并调用SwitchManager.show('One');。这就是发生错误的地方。
不知道怎么回事。
【问题讨论】:
-
import { NativeModules } from 'react-native'; var SwitchManager = NativeModules.SwitchManager;怎么样? -
@VojtaNovak 我想我也试过这个,但没用。我知道 SwitchManager.show 已定义,因为我做了一个
console.dir并且它已暴露。 -
@VojtaNovak 刚试过,一样。
标签: objective-c swift reactjs react-native