react native调用swift原生模块方法报错



  • 开发环境:XCode 8+react native 0.38
    1、swift代码
    @objc (SwiftModule)
    class SwiftModule: NSObject {
    @objc func showNum(num:Int){
    for i in 0 ..< num {
    print(i)
    }
    print("\n")
    }
    }
    2、swift module导出代码
    #import "RCTBridgeModule.h"
    @interface RCT_EXTERN_MODULE(SwiftModule,NSObject)
    RCT_EXTERN_METHOD(showNum:(int)num)
    @end
    3、bridging-header.h
    #import "RCTBridgeModule.h"

    运行后在js端调用swift中的showNum方法报错:
    Exception 'showNum:(int)num is not a recognized Objective-C method.' was thrown while invoking showNum on target SwiftModule width params

    整个的代码按照官方写的,哪里错了啊,求助。



  • 问题已解决,解决方法:
    点击xcode->project->Building Setting
    在Swift Compiler - Version中的Use Legacy Swift Language Version中选择yes,然后重新编译。



  • @AnselBaikal 说:

    Exception 'showNum:(int)num is not a recognized Objective-C method.' was thrown while invoking showNum on target SwiftModule width params

    请问一下你是怎么把swift的东西传到RN里的 swift怎么调用的宏定义


登录后回复