这是项目里面的debug进来的时候spriteFrame引用texture本身就是1,set里面addref之后就是2,但是再界面释放的时候只会decref一次,就会到这个texture的计数越来越大
onload 进来的时候是多少都没关系呀,谁创建谁销毁。谁增加谁负责减少。我看它增加前有进行旧的 decRef 操作,所以单看这段逻辑是没问题的。
第一次赋值的时候old是null空的,而且texture是被spriteFrame创建的本身计数就有已经在了
替换纹理的引用计数维护上没问题。
然后texture 引用计数为1又不是你这个组件造成的,那是加载创建逻辑完成后引用计数为1。别的地方也会增加引用计数的啊
替换是没问题,问题是我这边是在预制体里面初始化的时候走进来的,我预制体引用的时候加载labelaltas 引用的spriteFrame,spriteFrame引用的texture,这边计数就是1才对啊,但是现在是2啊,你替换纹理为什么会影响到我正常的预制体引用labelaltas呢,我销毁了labelaltas,那边的也按照依赖spriteFrame,texture都只减少一次,spriteFrame正常销毁, texture因为计数是1销毁不了,你创建一个空工程都可以复现啊
labelatlas 销毁只是一种情况,你预制体呢,bundle 呢?场景呢?texture 明显被某条边引用住了。自己查吧。
而且3.8.2版本是正常的,3.8.2版本是直接赋值的,没有set函数,就是正常的,




