错误处理

当引用一个返回错误参数(error parameter)的方法时,应该针对返回值,而非错误变量。

推荐:

  1. NSError *error;
  2. if (![self trySomethingWithError:&error]) {
  3. // 处理错误
  4. }

反对:

  1. NSError *error;
  2. [self trySomethingWithError:&error];
  3. if (error) {
  4. // 处理错误
  5. }

一些苹果的 API 在成功的情况下会写一些垃圾值给错误参数(如果非空),所以针对错误变量可能会造成虚假结果(以及接下来的崩溃)。