[v2.3.3][iOS] callStaticMethod 问题

在使用 jsb.reflection.callStaticMethod 调用 iOS 原生代码时,会出现只需要填写两个参数的情况。这时候,在 vscode 中就会报错,但是不影响实际使用。如下:

return jsb.reflection.callStaticMethod("GameHelper","paste");

paste 方法没有参数,不需要传参。这时候就会报错

希望引擎组能处理下。

解决方法:多声明一个函数重载即可。

    export module reflection{
        /**
         * https://docs.cocos.com/creator/manual/zh/advanced-topics/java-reflection.html
         * call OBJC/Java static methods
         * 
         * @param className 
         * @param methodName 
         * @param methodSignature 
         * @param parameters 
         */
        export function callStaticMethod(className: string, methodName: string): any;

        /**
         * https://docs.cocos.com/creator/manual/zh/advanced-topics/java-reflection.html
         * call OBJC/Java static methods
         * 
         * @param className 
         * @param methodName 
         * @param methodSignature 
         * @param parameters 
         */
        export function callStaticMethod(className: string, methodName: string, methodSignature: string, ...parameters:any): any;
    }
1赞

2.3.2也是有这个情况。此外还有别的函数在 creator.d里的声明发生了变化,虽然不影响,但也是报错。可以自己在项目下另建一个声明文件,写进这些 fix,以免受升级的影响。