ios - CGBitMapContextCreate 方法导致编译器警告 Xcode 5 而不是 Xcode 4

标签 ios xcode cgcontext xcode5 cgbitmapcontextcreate

我刚刚将 Xcode 从 4.6.2 版更新到 5.0 版,在我的项目(在 Xcode 4.6.2 中创建)中执行一个方法后,突然出现编译器警告。我已经尝试在新旧版本的 Xcode 中重新打开项目,并且我已经确认相同的方法在 4.6.2 中没有给出警告。

这是在 Xcode 5.0 中引发警告的代码行:

CGContextRef context = CGBitmapContextCreate(NULL, frame.size.width * scaleFactor, frame.size.height * scaleFactor, 8, frame.size.width * scaleFactor * 4, colorSpace, kCGImageAlphaPremultipliedFirst);

警告说:

"Implicit conversion from enumeration type 'enum CGImageAlphaInfo' to different enumeration type 'CGBitMapInfo' (aka 'enum CGBitMapInfo')"

它似乎不是弃用警告,但我对这些类还不够熟悉,无法解释其含义或知道如何解决它。感谢您的帮助。

最佳答案

kCGImageAlpha* 枚举值应该填充 CGBitmapInfo 中的前五位。但是,由于 C 类型系统无法表达这一点,您会收到类型不匹配的警告,即使它们本来是这样的。

正确的解决方案是将您的 alpha 枚举值转换为 CGBitmapInfo,因为它就是这样:

(CGBitmapInfo)kCGImageAlphaPremultipliedFirst

关于ios - CGBitMapContextCreate 方法导致编译器警告 Xcode 5 而不是 Xcode 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18831179/

相关文章:

ios - 拖动 TouchMoved 闪烁的图像

ios - Xcodebuild 以不同语言运行应用程序单元测试

ios - 如何在 Interface Builder 预览 Storyboard中显示导航栏(助理编辑器)

ios - 具有多个 DrawRect 方法的 UIView

ios - 如何为空白区域设置 UITableView 背景?

ios - 一个月中的周末天数

ios - 什么是 Objective C Nib 文件?

ios - 从 UICollectionViewCell 到 ViewController 的自动布局约束

ios - 如何使用 Objective-C 在约束条件下绘图

Swift:如何在 UIImageView 中画线?