title: Type MyViewController does not conform to protocol 'STPPaymentContextDelegate'
body: <p>I'm creating an extension on my class to conform to the protocol 'STPPaymentContextDelegate'. For some reason, the compiler complains, even though I have all the methods within the extension all declared properly like so.</p>
  
  <pre><code>extension PaymentPopupViewController: STPPaymentContextDelegate {
  
  func paymentContext(_ paymentContext: STPPaymentContext, didFailToLoadWithError error: Error) {
      self.delegate?.paymentPopupViewController(controller: self, didFinishPerhapsWithError: error as NSError?)
  }
  
  func paymentContextDidChange(_ paymentContext: STPPaymentContext) {
      if paymentContext.loading {
          self.indicatorView.startAnimating()
      } else {
          self.indicatorView.stopAnimating()
          if paymentContext.selectedPaymentMethod == nil {
              self.presentPaymentMehtodsViewController()
          }
      }
      self.indicatorView.isHidden = !paymentContext.loading
      self.paymentMethodLabel.isHidden = paymentContext.loading
      self.changePaymentMethodButton.isEnabled = !paymentContext.loading
      self.payButton.isEnabled = !paymentContext.loading &amp;&amp; paymentContext.selectedPaymentMethod != nil
      self.paymentMethodLabel.text = paymentContext.selectedPaymentMethod?.label
  }
  
  func paymentContext(_ paymentContext: STPPaymentContext, didCreatePaymentResult paymentResult: STPPaymentResult, completion: STPErrorBlock) {
      fatalError("Method isn't implemented because our backend makes a charge, not the app.")
  
  }
  
  func paymentContext(_ paymentContext: STPPaymentContext, didFinishWith status: STPPaymentStatus, error: Error?) {
      if status == .userCancellation {
          return
      }
      self.delegate?.paymentPopupViewController(controller: self, didFinishPerhapsWithError: error as NSError?)
  }
  </code></pre>
  
  <p>Here are the delegate methods as stated by the protocol:</p>
  
  <pre><code>@protocol STPPaymentContextDelegate &lt;NSObject&gt;
  
  - (void)paymentContext:(STPPaymentContext *)paymentContext didFailToLoadWithError:(NSError *)error;
  - (void)paymentContextDidChange:(STPPaymentContext *)paymentContext;
  - (void)paymentContext:(STPPaymentContext *)paymentContext
  didCreatePaymentResult:(STPPaymentResult *)paymentResult
          completion:(STPErrorBlock)completion;
  - (void)paymentContext:(STPPaymentContext *)paymentContext
  didFinishWithStatus:(STPPaymentStatus)status
               error:(nullable NSError *)error;
  </code></pre>
  
  <p>How do I go about resolving this issue?</p>