RAC警告問題解決方案
問題:
xcode9 中,在開發(fā)ios應用時,會發(fā)現(xiàn)第三方庫ReactiveCocoa出現(xiàn)這樣的問題
- 報警告如下
- ReactiveCocoa Unknown warning group ‘-Wreceiver-is-weak’,ignored...
ReactiveCocoa中:
RACObserve宏定義如下:
原因:
- 此前,如果Xcode中的消息接受者是一個weak對象堕花,clang編譯器會報receiver-is-weak警告尚氛,所以加了這段push&pop代碼,最新的clang已經(jīng)把這個警告給移除抗楔,所以沒必要加push&pop了钝域。
改為下面這樣就可以:
#define RACObserve(TARGET, KEYPATH) \
({ \
__weak id target_ = (TARGET); \
[target_ rac_valuesForKeyPath:@keypath(TARGET, KEYPATH) observer:self]; \
})
修改時可能要解鎖Podfile文件,因為ReactiveCocoa已經(jīng)不再對Objective-C進行維護,如果你的項目中用到它,最好不要再去更新.因為它的最新穩(wěn)定版是2.5版,在此基礎(chǔ)上,你修改其中的一個預防警告的代碼,是不會影響這個庫對項目的影響的.
如果有其他好的方案,或者對本文有什么問題,可以在 留言中討論,謝謝各位指正