ios工程—autorelease:你有被autorelease折磨过吗?
设备/引擎:Mac(11.6)/cocos
开发工具:Xcode(13.0)
开发需求:ios真机测试:ios工程—autorelease
最近一直在找一个新做项目的一个Bug
Bug大致是这样的?一个Manager类中设置的所有公有变量在其他类中被调用修改后再回到这个场景中发现所有被修改过的公有变量会乱码或者是错误的值,导致程序崩溃或玩法内容错误问题~~~
试了各种方法去纠正这个问题,结果都很不理想,最后用CCUserDefault来做对公有变量做本地存储再获取倒是可以,但是项目中包含公有数组,使用这个方式会加大内存消耗,不是长久之计。
最后无意间在Manager类中发现了如下代码:
static Manager* _sharedManager;
Manager* Manager::sharedManager(){
if (!_sharedManager) {
_sharedManager = new Manager();
_sharedManager->autorelease();
}
return _sharedManager;
}
问了才知道这个Manager类是之前工程加的,原因不得而知了,确实是没啥用处的,所以果断删除>~<
皆大欢喜,所有问题迎刃而解~~~
至此敬告大家不要轻易手动添加autorelease,尤其是用在含有公有变量的Manager类中,若是用在某个场景,且其它场景的中的变量值不受该场景影响,是可以考虑自己加的。
具体有关IOS-autorelease的相关知识就不在这啰嗦了,很多博主都有说过,此篇文章仅是对当下遇到问题的分享~~~
希望能给大家带来一些帮助!!!有什么需要讨论交流的可以私信+评论~~~