title: iOS : What is the need of register cell before dequeuing in UITableView?
body: <p>I went through the discussion under these:</p>
  
  <p><a href="https://developer.apple.com/reference/uikit/uitableviewdatasource/1614861-tableview" rel="nofollow">https://developer.apple.com/reference/uikit/uitableviewdatasource/1614861-tableview</a>
  <a href="https://developer.apple.com/reference/uikit/uitableview/1614937-register" rel="nofollow">https://developer.apple.com/reference/uikit/uitableview/1614937-register</a>
  <a href="https://developer.apple.com/reference/uikit/uitableview/1614891-dequeuereusablecell" rel="nofollow">https://developer.apple.com/reference/uikit/uitableview/1614891-dequeuereusablecell</a>
  <a href="https://developer.apple.com/reference/uikit/uitableview/1614878-dequeuereusablecell" rel="nofollow">https://developer.apple.com/reference/uikit/uitableview/1614878-dequeuereusablecell</a></p>
  
  <p>So, if we declare a cell prototype in the tableView itself (in the Interface Builder) then, we don't need to register cell under its identifier name. But, when the cell is constructed from a non-prototype class or nib then we need to register it.</p>
  
  <p>Why would Apple want us to do so. Why can't it(a table view) dequeue (or recreate, if necessary) a cell without registering it?
  For clarifying the question more: Why a different way of registering when we usually  straight away create objects from nib by loading them from nib.
  Is this just to save the searching time of the class or nib. Is it to keep a buffer of the cells?</p>