[英]refactoring to arc results in “synthesize of 'weak' property is only allowed in arc or gc mode”
[英]refactoring #ifndef __OBJC_GC_ in arc enabled app
我正在ARC环境中编写应用程序,并且试图使用在ARC之前编写的第三方库。 我在所有相关文件上使用-fno-objc-arc标志,因此正在编译,但项目使用#ifndef __OBJC_GC_块释放内存,这导致内存分配错误。 我正在尝试确定正确的解决方案,到目前为止,我有以下几点:
1.)找到一个不同的库或编写自己的库-这是同类库中唯一的免费库,因此这显然不理想,而且我还很新,以至于我不满意
2.)删除#ifndef块并交叉手指-今天无法在该项目上工作,但这是我的下一个计划
3.)将代码重构为与ARC兼容,并删除-fno-objc-arc标志
#2可能有效吗? #3有多难,实际上会导致编译器定义__OBJC_GC_吗? (我计划使用大约4-5个类,但是它们相当大)
您说分配块包含在#ifndef __OBJC_GC_
。 注意它是#ifndef
“如果未定义”。
因此,如果作者正确维护了非GC版本,它应该开箱即用。 您无需删除ifdef或伪造它们。
即使启用了ARC,编译器也不应为iOS定义此标志。 只要确保库本身没有显式设置此标志即可。
我建议考虑另一种选择:为项目关闭ARC。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.