2013-10-08 35 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