Имам част от кода, който създава маска, използвайки алфа канала на изображение. Преди да надстроя до Mavericks, работеше страхотно и никога не получих нито едно предупреждение или грешка в конзолата за отстраняване на грешки на Xcode. След надграждането получавам това предупреждение:
Неявно преобразуване от тип изброяване „enum CGImageAlphaInfo“ към различен тип изброяване „CGBitmapInfo“ (известен още като „enum CGBitmapInfo“)
Редът, маркиран като проблемен:
CGBitmapContextCreate(alphaData, width, height, 8, rowBytes, NULL, kCGImageAlphaOnly);
Ето какво се казва в документацията за последния аргумент (известен още като kCGImageAlphaOnly
):
bitmapInfo
Константи, които указват дали растерното изображение трябва да съдържа алфа канал, относителното местоположение на алфа канала в пиксел и информация за това дали пикселните компоненти са стойности с плаваща запетая или цели числа. Константите за указване на информацията за алфа канала са декларирани с типа
CGImageAlphaInfo
, но могат безопасно да бъдат предадени на този параметър. Можете също да подадете другите константи, свързани с типаCGBitmapInfo
.
Странно, но в документацията (Алфа информация за изображения), typedef на Apple не показва опцията, която използвам. Въпреки това, в списъка с термини, който следва, това е така! Ето какво пише:
kCGImageAlphaOnly
Няма цветни данни, само алфа канал. Предлага се в OS X v10.3 и по-нова версия. Деклариран вCGImage.h
.
Като се има предвид, че искам да създам алфа маска, не се интересувам от никакви цветови данни, така че аргументът, който използвам, е единственият, който има смисъл. Не съм сигурен какво иска да направя. Независимо от това, методът работи и всичко е наред, когато приложението работи. С това казано, предупрежденията са наистина досадни. Има ли специална CLANG директива, която да го заглуши? Всяка помощ ще бъде оценена. наздраве