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