'autorelease' is unavailable: not available in automatic reference counting mode - iOS

今天调试工程的时候编译程序 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 关键字.

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,504评论 30 472
  • 1.1 什么是自动引用计数 概念:在 LLVM 编译器中设置 ARC(Automaitc Reference Co...
    __silhouette阅读 5,439评论 1 17
  • 史上最全的iOS面试题及答案 iOS面试小贴士———————————————回答好下面的足够了----------...
    Style_伟阅读 2,527评论 0 35
  • ARC的本质 ARC是编译器(时)特性,而不是运行时特性,更不是垃圾回收器(GC)。 Automatic Refe...
    成热了阅读 684评论 0 1
  • 1.一定要照顾好自己的身体。生病了就去治,偶像剧里的柔弱梗现在都过时了。 前几天反复发高烧,矫情地和一个朋友说我发...
    状况少女阅读 431评论 0 2

友情链接更多精彩内容