对于一个有严重强迫症的程序猿来说,warning的给予我有效提醒的同时也是件折磨人的事情,项目收尾阶段,总是会集中处理下waring,0 warning这种事对我来说时间幸福的是,但warning的机制为何,一直以来没有去更深刻的理解,现在深入一下吧~
对于苹果负责维护的Object-C来说,从语言到编译器到SDK完全掌握在苹果手中,Warning相对于其他语言是更严格,更重要,更能体现问题的,关注于warning的存在并处理他,不仅契合了一个强迫症患者的心理,对于程序的健壮也是必须的。
打开尽可能多的警告,在Xcode中,Build Setting选项里为我们预留了一些打开警告的开关,找到并直接勾选相应的选项就可以打开警告。对于OC开发来说特有的警告都在Apple LLVM compiler 4.2 - Warnings - Objective C,另外几个Apple LLVM compiler 4.2 - Warnings - …(All languages和C++)也包含了大量的选项,以方便控制警告产生。在编译选项中加入合适的flag能够打开或者关闭警告:在Build Setting中的Other C Flags里添加形似-W...的编译标识。你可以在其中填写任意多的-W...以开关某些警告,比如,填写为-Wall -Wno-unused-variable即可打开“全部”警告(其实并不是全部,只是一大部分严重警告而已),但是不启用“未使用变量”的警告。使用-W...的形式,而不是在UI上勾选的一大好处是,在编译器版本更新时,新加入的警告如果包含在-Wall中的话,不需要对工程做任何修改,新的警告即可以生效。这样立即可以察觉到同一个工程由于编译器版本更新时可能带来的隐患。