je convertis un ancien projet iOS 5 en iOS6.0 sur xCode5 et la plupart des avertissements et des erreurs ont été corrigés mais pour celui-ci. toute suggestion sur la façon de réécrire le code pour éviter les avertissements du compliant.
#define kBitsPerComponent 8
#define kBitmapInfo kCGImageAlphaPremultipliedLast
- (UIImage*)scaleToSize:(CGSize)size :(UIImage *)image
{
CGBitmapInfo bitmapInfo = kBitmapInfo;
size_t bytesPerRow = size.width * 4.0;
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef context = CGBitmapContextCreate(NULL, size.width,
size.height, kBitsPerComponent,
bytesPerRow, colorSpace, bitmapInfo);
CGRect rect = CGRectMake(0.0f, 0.0f, size.width, size.height);
CGContextDrawImage(context, rect, image.CGImage);
CGImageRef scaledImageRef = CGBitmapContextCreateImage(context);
UIImage* scaledImage = [UIImage imageWithCGImage:scaledImageRef];
CGImageRelease(scaledImageRef);
CGContextRelease(context);
CGColorSpaceRelease(colorSpace);
return scaledImage;
}
le code donne un avertissement Conversion implicite du type d'énumération 'enum CGImageAlphaInfo' en un autre type d'énumération 'CGBitmapinfo' (aka) 'enum CGBitmapInfo')
appréciera grandement si quelqu'un peut vous aider à modifier le code.
De la documentation:
Les constantes pour spécifier les informations du canal alpha sont déclarées avec le type CGImageAlphaInfo mais peuvent être transmises à ce paramètre en toute sécurité.
Vous pouvez donc simplement utiliser un cast pour supprimer l'avertissement:
CGBitmapInfo bitmapInfo = (CGBitmapInfo) kBitmapInfo;