Mam ten fragment kodu, aby dać moich obrazów kolor mi potrzeba:CGContextFillRects: nieprawidłowy kontekst - Objective C
- (UIImage*)convertToMask: (UIImage *) image
{
UIGraphicsBeginImageContextWithOptions(image.size, NO, image.scale);
CGRect imageRect = CGRectMake(0.0f, 0.0f, image.size.width, image.size.height);
CGContextRef ctx = UIGraphicsGetCurrentContext();
// Draw a white background (for white mask)
CGContextSetRGBFillColor(ctx, 1.0f, 1.0f, 1.0f, 0.9f);
CGContextFillRect(ctx, imageRect);
// Apply the source image's alpha
[image drawInRect:imageRect blendMode:kCGBlendModeDestinationIn alpha:1.0f];
UIImage* outImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return outImage;
}
wszystko działa świetnie w moim pierwszym widoku, ale kiedy dodać to do mojego widoku szczegółów, to daje mi ten błąd (nadal działa):
CGContextSetRGBFillColor: nieprawidłowy kontekst 0x0. To poważny błąd. Ta aplikacja lub używana przez nią biblioteka używa nieprawidłowego kontekstu, co przyczynia się do ogólnej degradacji stabilności i niezawodności systemu. To zawiadomienie jest uprzejmością: prosimy rozwiązać ten problem. Stanie się fatalnym błędem w nadchodzącej aktualizacji.
CGContextFillRects: nieprawidłowy kontekst 0x0. To poważny błąd. Ta aplikacja lub biblioteka, której używa, używa nieprawidłowego kontekstu i jest przyczyniając się w ten sposób do ogólnej degradacji stabilności systemu i niezawodności. To zawiadomienie jest uprzejmością: prosimy rozwiązać ten problem. To stanie się krytycznym błędem w nadchodzącej aktualizacji.
Każdy pomysł, jak pozbyć się tego błędu?
Dzięki.
EDYTOWANIE:
Akcja została wywołana z brakiem obrazu. Z łatwością naprawiłem to, dodając warunek. Dzięki @ipmcc za komentarz.
- (UIImage*)convertToMask: (UIImage *) image
{
if (image != nil) {
UIGraphicsBeginImageContextWithOptions(image.size, NO, image.scale);
CGRect imageRect = CGRectMake(0.0f, 0.0f, image.size.width, image.size.height);
CGContextRef ctx = UIGraphicsGetCurrentContext();
// Draw a white background (for white mask)
CGContextSetRGBFillColor(ctx, 1.0f, 1.0f, 1.0f, 0.9f);
CGContextFillRect(ctx, imageRect);
// Apply the source image's alpha
[image drawInRect:imageRect blendMode:kCGBlendModeDestinationIn alpha:1.0f];
UIImage* outImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return outImage;
}else{
return image;
}
}
Trzecie identyczne pytanie za dwa dni, drugie dzisiaj. –
Czy Twój obraz 'nil'? IIRC, kontekst będzie "zerowy", jeśli przekażesz 0 dla wysokości, szerokości lub skali do "UIGraphicsBeginImageContextWithOptions". – ipmcc
@ipmcc Tak, z jakiegoś powodu metoda została wywołana raz z zerowym obrazem. Usunięcie warunku było łatwe. To działało na mój pierwszy widok, więc nie przyszło mi to do głowy. Dzięki – adam