title: Issue with CFArrayRef and NSArray when drawing gradient using ARC
body: <p>I have an ARC project and am trying to draw a vertical linear gradient. The code below works on the simulator, but throws a memory /<code>EXC_BAD_ACCESS</code> error when testing on the device. The app crashes on with the following two lines of code:</p>
  
  <pre><code>NSArray *colorArray = [NSArray arrayWithObjects:(__bridge id)topColor, (__bridge id)bottomColor, nil];
  CGGradientRef gradient = CGGradientCreateWithColors(colorSpace, (__bridge CFArrayRef) colorArray, colorLocations); 
  </code></pre>
  
  <p>Those two lines of code are taken from the following code (provided for reference):</p>
  
  <pre><code>- (void)drawRect:(CGRect)rect
  {
      CGContextRef context = UIGraphicsGetCurrentContext();
  
      [self createGradientForContext:context andView:self.captionView];
      [self createGradientForContext:context andView:self.linksView];
      [self createGradientForContext:context andView:self.commentView]; 
  
  }
  
  - (void)createGradientForContext:(CGContextRef)context andView:(UIView *)view
  {
  
      CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
  
      CGFloat colorLocations[] = { 0.0f, 1.0f };
  
      CGColorRef topColor = [[UIColor colorWithRed:51.0f/255.0f green:51.0f/255.0f blue:51.0f/255.0f alpha:1.0f] CGColor];
      CGColorRef bottomColor = [[UIColor colorWithRed:48.0f/255.0f green:48.0f/255.0f blue:48.0f/255.0f alpha:1.0f] CGColor];
      NSArray *colorArray = [NSArray arrayWithObjects:(__bridge id)topColor, (__bridge id)bottomColor, nil];
      CGGradientRef gradient = CGGradientCreateWithColors(colorSpace, (__bridge_retained CFArrayRef) colorArray, colorLocations);    
  
      CGRect frame = view.frame;
      CGPoint startPoint = CGPointMake(CGRectGetMidX(frame), CGRectGetMinY(frame));
      CGPoint endPoint = CGPointMake(CGRectGetMidX(frame), CGRectGetMaxY(frame));
  
      CGContextSaveGState(context);
      CGContextAddRect(context, frame);
      CGContextClip(context);
      CGContextDrawLinearGradient(context, gradient, startPoint, endPoint, 0);
      CGContextRestoreGState(context);
  
      CGGradientRelease(gradient);
      CGColorSpaceRelease(colorSpace);
  
  }
  </code></pre>
  
  <p>Thanks ahead of time for any and all guidance.</p>