【已解决】插件扩展lua属性设置函数里调用root:removeAllChildren()崩溃

在写插件时,调用lua段的属性设置函数,然后在函数里调用了root:removeAllChildren(),之后鼠标移动到物体上方cocos studio就崩溃了
如果之前的csd已经保存了这个对象,那么打开这个csd后,拖入【任何】控件cocos sutdio都会崩溃!

function container.SetLabelText(root, value)
root.strLabelText = value
root:removeAllChildren()
end

您具体是要完成个什么任务?
从您上面发的代码来看,您是给 root 添加了一个 strLabelText 字符串属性,这句是没有问题的。
先向您确认下 root:removeAllChildren() 确定是要调用的么?这句调用完之后 root 控件的子控件就都没有了,并且被释放掉了。
在接下来的调用,就可能会引发空引用。这可能就是您上面说的崩溃的原因。
插件扩展中是不建议调用像这种 removeAllChildren() 取消控件的挂载的方法的,除非您很明确调用这句之后不再调用其它的扩展属性相关的方法(这些方法的调用顺序在加载 CSD 时都会被调用一次,所以,remove 之后,再有相关的方法调用就会崩溃。)。

另外,插件扩展的主要目的是自定义渲染,也就是增加东西。
最好不要在扩展的 Lua 内部调用像 remove 这种减的动作。

以上,请了解。

我找到崩溃原因了
是编辑器直接将选框(就是选中后黄色的那个框)下挂在对象节点里
然后removeAllChildren会将这个选框也释放掉了

是的。

那您的问题解决了么?

我把我自己创建的对象记录了一下,然后释放时就释放我自己创建的

的确,可以这样。

有问题再沟通。