您好,欢迎来到二三四教育网。
搜索
您的当前位置:首页'autorelease' is unavail

'autorelease' is unavail

来源:二三四教育网

今天调试工程的时候编译程序 GTMBase64 这个类遇到了 ARC 的异常;

大致意思为当前为 ARC 环境, 属于自动引用计数,编译器会自动帮你优化管理释放内存的操作,故此处不能使用 autorelease 进行手动添加.


异常:

/Users/survivors/Desktop/iOS/***/Expand/ToolClass/GTMBase64/GTMBase64.m:288:69: 'autorelease' is unavailable: not available in automatic reference counting mode


解决:

办法一:

    手动将类中的 autorelease 关键字删除掉即可.

    result = [[[NSString alloc] initWithData:converted

                                    encoding:NSASCIIStringEncoding] autorelease];

                                                    ↓↓↓

    result = [[NSString alloc] initWithData:converted

                                    encoding:NSASCIIStringEncoding];

办法二:

在 targets -> build phases 中的 compile sources 项中修改对应类的 compiler flags 属性;

将其属性中添加 -fno-objc-arc 即可;

如此一来可以让该类兼容当前 ARC 环境编译条件,从而顺利编译通过.

步骤如下图:


注:若项目使用了 ARC,代码中无需再使用 autorelease 关键字.

Copyright © 2019- how234.cn 版权所有 赣ICP备2023008801号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务