2013-10-08 32 views
1

我在我的项目中使用QR码创建项目https://github.com/kuapay/iOS-QR-Code-Generator。我已经完全按照说明添加了它。CGImageCreateWithMaskingColors无匹配函数

我可以编译和我没有什么问题,所以,以往的测试设备上运行该项目,但是当我试图将其存档,我得到以下错误:

Path/to/project/Barcode.mm:67:33: No matching function for call to 'CGImageCreateWithMaskingColors'

我拉我的头发在这一个。这里是代码片段,它与它使用的变量声明一起被调用。

CGImageRef rawImageRef = image.CGImage; 

const float colorMasking[6] = {222, 255, 222, 255, 222, 255}; 

UIGraphicsBeginImageContext(image.size); 
CGImageRef maskedImageRef = CGImageCreateWithMaskingColors(rawImageRef, colorMasking); 
+0

您是否有一些为调试而不是发布构建配置的构建设置? – Wain

+0

**您赢了!** 我没有为活动架构而仅在发布版本上构建,只是调试。 – stevenpaulr

回答

2

既然答案出现在问题的评论中,我自己只是回答一个明显的答案。在“用于调试的构建仅用于活动架构”的构建设置中,我有YES,并且发布版本没有。我将发布版本切换到YES,并且没有任何问题。

感谢Wain指引我在正确的方向。

12

我知道提问者找到了他的答案,但我的问题是在发布版本中它应该是NO。因为我们也需要非活动架构!

问题在于XCode在新的XCode 5.1(5B130a)中对64位版本更严格。 CGImageCreateWithMaskingColors的第二个参数是CGFloat,所以将类型从float更改为CGFloat将其修正。

//const float colorMasking[6] = {222, 255, 222, 255, 222, 255};//before 
const CGFloat colorMasking[6] = {222, 255, 222, 255, 222, 255};//after 

UIGraphicsBeginImageContext(image.size); 
CGImageRef maskedImageRef = CGImageCreateWithMaskingColors(rawImageRef, colorMasking); 
+0

哦,太棒了!我在另一个应用程序中遇到了同样的问题,忘记了这一点,并在Google搜索时实际找到了自己的线索。这将有很大的帮助! – stevenpaulr