title: Why I have to add IBOutlet identifier to my delegate when inside apple sdk there isn't any IBOutlets?
body: <p>I've created the following custom view:</p>
  
  <pre><code>@interface TNGalleryView : UIView
  
  @property (assign, nonatomic) id &lt;TNGalleryViewDelegate&gt; delegate;
  @property (assign, nonatomic) id &lt;TNGalleryViewDataSource&gt; dataSource;
  
  @end
  </code></pre>
  
  <p>I can assign delegate of it in code, but when I want to assign delegate in IB, I can't. I have to change my code to:</p>
  
  <pre><code>@interface TNGalleryView : UIView
  
  @property (assign, nonatomic) IBOutlet id &lt;TNGalleryViewDelegate&gt; delegate;
  @property (assign, nonatomic) IBOutlet id &lt;TNGalleryViewDataSource&gt; dataSource;
  
  @end
  </code></pre>
  
  <p>and then I can assign delegate and dataSource in IB.</p>
  
  <p>Why if i would like to assign delegate and dataSource in IB I have to add IBOutlet identifier, but inside apple sdk there isn't any IBOutlets? For example this part of UICollectionView declaration:</p>
  
  <pre><code>NS_CLASS_AVAILABLE_IOS(6_0) @interface UICollectionView : UIScrollView
  
  - (id)initWithFrame:(CGRect)frame collectionViewLayout:(UICollectionViewLayout *)layout; // the designated initializer
  
  @property (nonatomic, retain) UICollectionViewLayout *collectionViewLayout;
  @property (nonatomic, assign) id &lt;UICollectionViewDelegate&gt; delegate;
  @property (nonatomic, assign) id &lt;UICollectionViewDataSource&gt; dataSource;
  </code></pre>
  
  <p>There isn't any IBOutlet, nevertheless I can assign dataSource and delegate to it in IB.</p>