我试图将我的React-Native 0.33代码链接到一个超级简单的
Swift方法,在
this guide之后,但是我得到的只是显示:( NSString *)名称不是一个公认的Objective-C方法.
这是我的代码:
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桥接,Header.h
#import "RCTBridgeModule.h"
然后在我的index.ios.js文件中,我从“NativeModules”导入导入{SwitchManager}的SwitchManager;并调用SwitchManager.show(‘One’);.这是错误发生的地方.
不知道怎么了
我一整天都在和这个问题进行斗争.通过将Swift编译器设置为使用Legacy版本(XCode 8更喜欢Swift 3)解决,所以在:
构建设置>向下滚动到“使用旧版Swift语言版本”设置为是.