title: Warning: Method override for designated initializer
body: <p>I programmatically create several tables and the code has worked fine for years. It did not generate any warnings two weeks ago when I last ran it. I’ve since updated to iOS 8.3 and I now get three warnings for each UITableViewController.</p>
  
  <blockquote>
    <p>Method override for the designated initializer of the superclass
    '-initWithStyle:' not found. </p>
    
    <p>Method override for the designated initializer of the superclass
    '-initWithCoder:' not found. </p>
    
    <p>Method override for the designated initializer of the superclass
    '-initWithNibName:bundle:' not found.</p>
  </blockquote>
  
  <p>The code to initialize the table is similar for all of my tables:</p>
  
  <pre><code>- (instancetype)initInManagedObjectContext:(NSManagedObjectContext *)context 
                   withScoreKeeper:(ScoreKeeper *)scorer 
                      withWordList:(WordList *)wordlist {
  
      self = [super initWithStyle:UITableViewStyleGrouped];
  
      if (self) {
          _mObjContext = context;
          _scoreKeeper = scorer;
          _wordList = wordlist;
      }
      return self;
  }
  </code></pre>
  
  <p>and the .h looks like this:</p>
  
  <pre><code>@interface SettingsTableViewController : UITableViewController {
      UIPopoverController *popover;
  
  }
      - (instancetype)initInManagedObjectContext:(NSManagedObjectContext *)context 
                       withScoreKeeper:(ScoreKeeper *)scorer 
                          withWordList:(WordList *)wordlist NS_DESIGNATED_INITIALIZER;
  </code></pre>
  
  <p>I thought that I was overriding a designated initializer by invoking self = [super initWithStyle:UITableViewStyleGrouped];, but I guess the compiler now has other ideas.</p>
  
  <p>So how do I override the designated initializer?</p>