아이폰 4S 아이폰 OS 7.0.4 본때를 보여 주면서 TestFlight 충돌 로그가 있습니다. 이 라인에CGColorRef를 추가 할 때 CFArrayAppendValue 충돌이 발생합니다.
충돌 : 충돌이 발생
CFArrayAppendValue(colorArray, lighterColor);
전체 방법 :이 문제를 해결하는 방법을 알고 싶어요
- (UIImage *) imageWithColor:(UIColor *)color_ Height:(CGFloat)height_ Retina:(BOOL)retina_
{
UIGraphicsBeginImageContextWithOptions(CGSizeMake(1.0f, height_), YES, retina_ ? 2.0f : 1.0f);
CFMutableArrayRef colorArray = CFArrayCreateMutable(NULL, 2, &kCFTypeArrayCallBacks);
CGColorRef lighterColor = CGColorRetain([[color_ lighterColor] CGColor]);
CGColorRef darkerColor = CGColorRetain([[color_ darkerColor] CGColor]);
CFArrayAppendValue(colorArray, lighterColor);
CFArrayAppendValue(colorArray, darkerColor);
CGColorSpaceRef space = CGColorSpaceCreateDeviceRGB();
CGGradientRef gradient = CGGradientCreateWithColors(space, colorArray, NULL);
CGContextDrawLinearGradient(UIGraphicsGetCurrentContext(), gradient, CGPointMake(0.0f, 0.0f), CGPointMake(1.0f, height_), kCGGradientDrawsBeforeStartLocation);
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
CGColorRelease(lighterColor);
CGColorRelease(darkerColor);
return image;
}
.
도움을 주시면 감사하겠습니다.
'lighterColor'가 배열에 추가되기 전에 NULL이 아닌지 확인하십시오. – Emmanuel