明确编译器警告和错误

编译器是一个机器人,它会标记你代码中被 Clang 规则定义为错误的地方。但是,你总是比 Clang 更聪明。通常,你会发现一些讨厌的代码会导致这个问题,但是暂时却解决不了。你可以这样明确一个错误:

  1. - (NSInteger)divide:(NSInteger)dividend by:(NSInteger)divisor
  2. {
  3. #error Whoa, buddy, you need to check for zero here!
  4. return (dividend / divisor);
  5. }

类似的,你可以这样标明一个警告

  1. - (float)divide:(float)dividend by:(float)divisor
  2. {
  3. #warning Dude, don't compare floating point numbers like this!
  4. if (divisor != 0.0) {
  5. return (dividend / divisor);
  6. }
  7. else {
  8. return NAN;
  9. }
  10. }