title: Correct Structure to check for Errors using NSError
body: <p>I'm coding up various routines and I'm trying my best to keep it neat and refactored.</p>
  
  <p>Methods I'm creating are starting to look similar to this code:</p>
  
  <pre><code>-(IBAction)buttonPress:(id)sender {
      // Create Document Shopping List with this document
      [self doSomething:&amp;error];
  
      if(error) {
          [NSApp presentError:&amp;error];
          return nil;
      }
  
      [self doSomethingElse:&amp;error];
  
      if(error) {
          [NSApp presentError:&amp;error];
          return nil;
      }
  
      [self doYetSomethingElse:&amp;error];
  
      if(error) {
          [NSApp presentError:&amp;error];
          return nil;
      }
  }
  </code></pre>
  
  <p>I love NSError, but this seems like an awfully clumsy way of handling all my errors.</p>
  
  <p>A few thoughts I've had about alternative ways:</p>
  
  <p>a) the error checking could be built into the methods doSomething, doSomethingElse etc, but then I wouldn't be able to exit the button press method without doing some kind of checking on the return value, which would lead me back to a similar structure.</p>
  
  <p>b) I could set up the NSError as being Key Value Observed, but something about this feels deeply wrong. I'm very aware of the possibilities of abuse with KVO, so I'm trying to do everything without it whereever possible.</p>
  
  <p>Surely I'm missing something really basic here? Is there a pattern that can help me? Or is this structure OK?</p>