Soru 'Enum CGImageAlphaInfo' sayım türünden 'CGBitmapinfo' (aka) 'enum CGBitmapInfo') farklı numaralandırma türlerine örtük dönüşüm


Eski bir iOS 5 projesini xCode5 üzerinde iOS6.0'a dönüştürüyorum ve uyarıların ve hataların çoğu düzeltildi, ancak bunun için. Complier uyarılarını önlemek için kodun nasıl yeniden yazılacağına dair herhangi bir öneri.

#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;
}

kod bir uyarı verir 'enum CGImageAlphaInfo' sayım türünden 'CGBitmapinfo' (aka) 'enum CGBitmapInfo')

Kodun nasıl değiştirileceği konusunda yardım edebilecek biri varsa çok memnun olacak.


44
2017-09-20 16:36


Menşei




Cevaplar:


Dokümanlardan:

Alfa kanalı bilgisini belirlemek için sabitler CGImageAlphaInfo türü ile bildirilir, ancak bu parametreye güvenli bir şekilde geçirilebilir.

Yani uyarıyı bastırmak için sadece bir döküm kullanabilirsiniz:

CGBitmapInfo bitmapInfo = (CGBitmapInfo) kBitmapInfo;

117
2017-09-20 16:45



Çok teşekkürler ! işe yarıyor ! - iSrini
Bunu bulmak güzel. Buradaki cevapların birçoğu, uyarı tetikleme sabitlerini kullanır ve şu ana kadar çok şaşırtıcıydı çünkü Xcode'daki "Tanımlamaya Atlamak", bunların tamamen farklı olduğunu açıkça gösteriyor enums ve işlevsel olarak birbirlerinin yerine geçebilecekleri net değil. - Nicolas Miari