版本:Cocos2d-JS v3.0 Final
系统:IOS
jsb.relection无法返回字符串,永远是空。
解决办法如下:
找到JavaScriptObjCBridge.mm文件,修改以下两处代码
1,CallInfo析构函数增加对资源的释放:
JavaScriptObjCBridge::CallInfo::~CallInfo(void)
{
if(m_returnType == TypeString && m_ret.stringValue)
{
delete m_ret.stringValue;
}
}
2,找到pushValue函数
把该函数倒数第二个else if 内容改为
const char *abc = cStringUsingEncoding:NSUTF8StringEncoding];
m_ret.stringValue = new string(abc);
m_returnType = TypeString;
问题产生原因很简单,局部变量指针传递给外部,出了作用域,内存就被释放了。