看起來簡單的解釋是:要載入其他用Objective-C寫的靜態library,要設定這個flag。而這個flag也有造成執行檔肥大的問題。The -ObjC Linker Flag
Passing the -ObjC option to the linker causes it to load all members of static libraries that implement any Objective-C class or category. This will pickup any category method implementations. But it can make the resulting executable larger, and may pickup unnecessary objects. For this reason it is not on by default.
這倒讓我想到那有可能不用這個設定嗎???
參考網址:
What does the -ObjC linker flag do?
Technical Q&A QA1490 - Building Objective-C static libraries with categories