Итак, у меня есть следующий код и строка, которая является const double colorMasking [6], сейчас она двойная, но если я чист и строю ее, то говорят, что типы несовместимых указателей, проходящие double, должны быть float. Затем, однако, если я изменю его на float, ошибка исчезнет, но затем, как только я очистку и построю снова, он говорит, что типы несовместимых указателей, проходящие с плавающей точкой, должны быть двойными. Точная противоположность тому, что я только что сделал. Любая идея, что здесь происходит?Несовместимые типы указателей, проходящих независимо от типа?
-(UIImage *)changeWhiteColorTransparent: (UIImage *)image
{
CGImageRef rawImageRef=image.CGImage;
const double colorMasking[6] = {222, 255, 222, 255, 222, 255};
UIGraphicsBeginImageContext(image.size);
CGImageRef maskedImageRef=CGImageCreateWithMaskingColors(rawImageRef, colorMasking);
{
//if in iphone
CGContextTranslateCTM(UIGraphicsGetCurrentContext(), 0.0, image.size.height);
CGContextScaleCTM(UIGraphicsGetCurrentContext(), 1.0, -1.0);
}
CGContextDrawImage(UIGraphicsGetCurrentContext(), CGRectMake(0, 0, image.size.width, image.size.height), maskedImageRef);
UIImage *result = UIGraphicsGetImageFromCurrentImageContext();
CGImageRelease(maskedImageRef);
UIGraphicsEndImageContext();
return result;
}
Глупый вопрос: в какой строке помечено это сообщение об ошибке. –
Работает ли это, если 'colorMasking' является' CGFloat' вместо 'double'? – NobodyNada
@HotLicks Я думаю, что это 'CGImageRef maskedImageRef = CGImageCreateWithMaskingColors (rawImageRef, colorMasking);', поскольку это единственный раз, когда он передает 'colorMasking'. – NobodyNada