RAC警告问题解决方案
问题:
xcode9 中,在开发ios应用时,会发现第三方库ReactiveCocoa出现这样的问题
- 报警告如下
- ReactiveCocoa Unknown warning group ‘-Wreceiver-is-weak’,ignored...
ReactiveCocoa中:
RACObserve宏定义如下:
原因:
- 此前,如果Xcode中的消息接受者是一个weak对象,clang编译器会报receiver-is-weak警告,所以加了这段push&pop代码,最新的clang已经把这个警告给移除,所以没必要加push&pop了。
改为下面这样就可以:
#define RACObserve(TARGET, KEYPATH) \
({ \
__weak id target_ = (TARGET); \
[target_ rac_valuesForKeyPath:@keypath(TARGET, KEYPATH) observer:self]; \
})
修改时可能要解锁Podfile文件,因为ReactiveCocoa已经不再对Objective-C进行维护,如果你的项目中用到它,最好不要再去更新.因为它的最新稳定版是2.5版,在此基础上,你修改其中的一个预防警告的代码,是不会影响这个库对项目的影响的.
如果有其他好的方案,或者对本文有什么问题,可以在 留言中讨论,谢谢各位指正