[发明专利]一种适配自动引用计数ARC特性的方法、装置及电子设备有效
申请号: | 201910249833.4 | 申请日: | 2019-03-29 |
公开(公告)号: | CN110046004B | 公开(公告)日: | 2022-09-02 |
发明(设计)人: | 冀睿哲;杨子斌;王仕俊 | 申请(专利权)人: | 北京奇艺世纪科技有限公司 |
主分类号: | G06F9/448 | 分类号: | G06F9/448 |
代理公司: | 北京银龙知识产权代理有限公司 11243 | 代理人: | 许静;黄灿 |
地址: | 100080 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 自动 引用 计数 arc 特性 方法 装置 电子设备 | ||
本发明提供一种适配自动引用计数ARC的方法、装置及电子设备,该方法包括:在接收到用于调用手动引用计数MRC父类的触发信号的情况下,创建ARC子类,其中,所述ARC子类继承所述MRC父类的属性,且具备释放后引用计数置零的特性;向调用对象返回所述ARC子类。本发明提供的适配ARC的方法可以在接收到用于调用MRC父类的触发信号时,通过创建并返回继承所述MRC父类属性的ARC子类,使得MRC父类在被调用时也能够使用自动引用计数的特性,且该方式无需编程人员修改原有文件和进行测试,从而能够极大减少工作量,且还能够减少程序异常和崩溃的现象。
技术领域
本发明涉及通信技术领域,尤其涉及一种适配ARC特性的方法、装置及电子设备。
背景技术
内存是计算机中重要的部件之一,用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。
手动引用计数(Manual Reference Counting,简称MRC)是一种依赖编程人员手动释放对象内存的内存管理机制,即写代码调用release函数释放内存,当内存对象增多时,经常会由于编程人员忘记手动释放该对象,而造成程序内存泄露,当使用弱引用修饰符assign时在对象释放后还易产生野指针,使程序出现异常或崩溃。而自动引用计数(Automatic Reference Counting,简称ARC)是Objective-C程序的一种自动内存管理机制,运用ARC可以使编程人员基本不用考虑对象何时释放的问题,编译器会在合适的时间自动将其引用计数为零,从而将编程人员从繁琐的手工内存管理中释放出来,并同时减少了程序员犯错误的可能性,提高了系统运行的可靠性。
现有技术中,为了使以前使用MRC的老代码也能够适配ARC特性,以减少程序异常和崩溃,通常是通过修改编译选项,如指定原有MRC文件为ARC编译,并修改原有MRC文件的源代码,如删除ARC不支持的方法代码、替换部分方法代码和修改类型对象等,来使之适配ARC特性。
可见,由于这种方式需要修改原有文件,并且需要测试修改后的文件,以保证其能够正确适配ARC特性,从而存在修改工作量大且效率较低的问题。
发明内容
本发明实施例提供一种适配ARC的方法、装置及电子设备,以解决现有适配方式存在修改工作量大且效率较低的问题。
为解决上述技术问题,本发明是这样实现的:
第一方面,本发明实施例提供了一种适配ARC的方法,包括:
在接收到用于调用手动引用计数MRC父类的触发信号的情况下,创建ARC子类,其中,所述ARC子类继承所述MRC父类的属性,且具备释放后引用计数置零的特性;
向调用对象返回所述ARC子类。
第二方面,本发明实施例提供一种适配ARC的装置,包括:
创建模块,用于在接收到用于调用手动引用计数MRC父类的触发信号的情况下,创建ARC子类,其中,所述ARC子类继承所述MRC父类的属性,且具备释放后引用计数置零的特性;
返回模块,用于向调用对象返回所述ARC子类。
第三方面,本发明还提供一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述的适配ARC的方法的步骤。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述适配ARC方法中的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇艺世纪科技有限公司,未经北京奇艺世纪科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910249833.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种异常处理方法、装置、电子设备和存储介质
- 下一篇:菜单排序的方法和装置