ios工程—autorelease:你有被autorelease折磨过吗?

博客作者在iOS项目中遇到了一个bug,公有变量在不同类间交互后出现乱码和错误值。问题源于Manager类中的autorelease使用。移除不必要的autorelease后,问题得到解决。建议谨慎使用autorelease,特别是在涉及公有变量的Manager类中,以免影响其他场景的变量值。
摘要由CSDN通过智能技术生成

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的相关知识就不在这啰嗦了,很多博主都有说过,此篇文章仅是对当下遇到问题的分享~~~

希望能给大家带来一些帮助!!!有什么需要讨论交流的可以私信+评论~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GameTomato

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值