title: Is there a big performance hit for registering cells I don't use?
body: <p>I have my <code>UITableViewCells</code> in separate xibs, because I reuse them a lot throughout my app. I now have a little list of cells to register in every <code>UITableViewController</code>, like this:  </p>
  
  <pre><code>// viewdidload
      tableView.register(UINib(nibName: "KeyTextCell", bundle: nil), forCellReuseIdentifier: "KeyTextCell")
      tableView.register(UINib(nibName: "KeyValueCell", bundle: nil), forCellReuseIdentifier: "KeyValueCell")
      tableView.register(UINib(nibName: "KeyEditFieldCell", bundle: nil), forCellReuseIdentifier: "KeyEditFieldCell")
      tableView.register(UINib(nibName: "KeyTwoEditFieldCell", bundle: nil), forCellReuseIdentifier: "KeyTwoEditFieldCell")
      tableView.register(UINib(nibName: "KeyThreeEditFieldCell", bundle: nil), forCellReuseIdentifier: "KeyThreeEditFieldCell")
      tableView.register(UINib(nibName: "KeySwitchCell", bundle: nil), forCellReuseIdentifier: "KeySwitchCell")
      tableView.register(UINib(nibName: "TextCell", bundle: nil), forCellReuseIdentifier: "TextCell")
  
  //cellForRow...
      let cell = tableView.dequeueReusableCell(withIdentifier: "KeyValueCell") as! KeyValueCell
  </code></pre>
  
  <p>I have to add any new cell to this list first before I'm able to use the cell in that controller, which is annoying and easy to forget. Aside from that, it's ugly to have a list of cells to register in my viewDidLoad and it gets quite long in some places.<br>
  So I want to make this better. I was thinking of making a small function in a <code>UITableViewController</code> extension that registers all cells I have. That would mean only one list to maintain, but also registering cells I potentially don't need in that specific controller. Does registering unnecessary cells give a (big) performance hit? Are there any other downsides? What's best practice?</p>