title: UICollectionView registerClass: forCellWithReuseIdentifier method breaks UICollectionView
body: <p>What's the role of <code>registerClass:forCellWithReuseIdentifier:</code> method? 
  According to Apple's developer documentation it's supposed to </p>
  
  <blockquote>
    <p>"Register a class for use in creating new collection view cells." </p>
  </blockquote>
  
  <p>When I try to use it my project I get a black collection view. When I delete it everything works fine. </p>
  
  <pre><code>#define cellId @"cellId"
  #import "ViewController.h"
  #import "Cell.h"
  @interface ViewController ()
  @property (weak, nonatomic) IBOutlet UICollectionView *collectionView;
  @property(strong, nonatomic)NSMutableArray * photoArray;
  
  
  @end
  
  @implementation ViewController
  
  
  - (void)viewDidLoad
  {
      [super viewDidLoad];
      // Do any additional setup after loading the view, typically from a nib.
      NSLog(@"%@",_photoArray);
      _photoArray = [[NSMutableArray alloc]initWithCapacity:0];
      [_collectionView registerClass:[Cell class] forCellWithReuseIdentifier:cellId];
      for(int i=1;i&lt;=12;i++)
      {
          NSString * imgName = [NSString stringWithFormat:@"%d.png",i];
          UIImage *img  = [UIImage imageNamed:imgName];
          [_photoArray addObject:img];
      }
  }
  
  
  - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
      return _photoArray.count;
  }
  
  - (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView{
      return 1;
  }
  
  - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
  
      Cell* cell = [_collectionView  dequeueReusableCellWithReuseIdentifier:cellId forIndexPath:indexPath];
      cell.cellImage.image = [_photoArray objectAtIndex:indexPath.row];
      return cell;
  }
  </code></pre>