-
Creator 版本:
-
目标平台:
-
重现方式:我js调用ios原生native.reflection.callStaticMethod(“AppDelegate”,“buttonCLickWithProduId:”,“NSString”, “package2”);原生文件AppDelegate.m中确实有buttonCLickWithProduId,参数只有一个,类型是NSString,但是我调用就是查不到这个方法
-
首个报错:
-
之前哪个版本是正常的:
-
手机型号:
-
手机浏览器:
-
编辑器操作系统:
-
重现概率:
Android 和 iOS的调用不一样,iOS没有签名参数那个参数
native.reflection.callStaticMethod(“AppDelegate”,“buttonCLickWithProduId:”, “package2”);这样嘛,我试过也不行啊
你的ios文件贴出来,看看咯。你这个方法是不是static的呢?
大佬贴出来了,您指点一下
用记事本写代码,您才是大佬
公司就一台苹果电脑,打包IOS,得去人家那操作,我这没办法,大佬有什么指点嘛
这个函数是否在.h里声明了?现在看着只是在mm里实现了。可能没在.h里声明,导致找不到。

稍微长一点就一直在审核,我直接截图发吧
声明了,我很确定,第一次报错就考虑这个问题了
试了native.reflection.callStaticMethod(“AppDelegate”,“buttonCLickWithProduId”,“”);
[SE_ERROR] (/Applications/Cocos/Creator/3.8.3/CocosCreator.app/Contents/Resources/resources/3d/engine/native/cocos/bindings/manual/JavaScriptObjCBridge.mm, 326): call (AppDelegate.buttonCLickWithProduId) failed, result code: -2
还有问题的话我觉得就是你类写错了,
native.reflection.callStaticMethod("AppDelegate", "buttonCLickWithProduId");
+ (void)buttonCLickWithProduId {
NSLog(@"==================[buttonCLickWithProduId] 执行=========================");
}
看起来没什么差距,就是我家了个空参,去掉空参就能调用,大概是这个意思把
确实打印出来了,那带参数到底应该怎么写呢
直接从这里面复制吧,然后其实我觉得应该是你 Objective-C 代码的问题,但这个语法我不熟,建议交给ai来写
https://docs.cocos.com/creator/3.8/manual/zh/advanced-topics/oc-reflection.html
但是我的OBJC部分代码,是ios原生写的,正常情况下应该是没问题的
先用cocos带参的 Objective-C 方法试试
成功调用然后拿成功调用的例子去问帮你写那个方法的人,
让人家看 Objective-C 方法他之前写的 和 Cocos 的例子里的有什么区别
完全照搬官方文档,就行了,一个参数怎么写都错,写两个就能用

