title: UIViewController as datasource and delegate of UITableView without conforming to protocols?
body: <p>I was reviewing some of my code, and suddenly I realized that a UIViewController which has <code>UITableView</code> and is the <code>datasource</code> and <code>delegate</code> of this <code>UITableView</code> does not declare the protocols <code>&lt;UITableViewDataSource, UITableViewDelegate&gt;</code>, but instead simply has the methods but never declares the protocols.</p>
  
  <p>How is this even working?, per the documentation:</p>
  
  <pre><code>dataSource
  The object that acts as the data source of the receiving table view.
  @property(nonatomic, assign) id&lt;UITableViewDataSource&gt; dataSource
  Discussion
  The data source must adopt the UITableViewDataSource protocol. The data source is not retained.
  delegate
  The object that acts as the delegate of the receiving table view.
  @property(nonatomic, assign) id&lt;UITableViewDelegate&gt; delegate
  Discussion
  The delegate must adopt the UITableViewDelegate protocol. The delegate is not retained.
  </code></pre>
  
  <p>There are NO warnings of any type, I do have the necessary methods of course to make this work and everything works perfectly, why is this working?. I am not inheriting from <code>UITableViewController</code> which I know declares this protocols, this is just a <code>UIViewController</code> subclass.</p>
  
  <p>EDIT: Apparently IB will not give you any warnings if it is set up there, it does as expected on code though. I believe IB should also give you the warning, but I guess not.</p>