我已經成功地將許多錯誤轉換爲Swift 3,除了最後一行。它適用於Xcode 7,但不適用於Xcode 8.Xcode 8/Swift 3 - 類型'CGColorRenderingIntent'沒有成員'RenderingIntentDefault'
值得一提的是,Xcode 7在CGColorRenderingIntent
上有文檔,但Xcode 8沒有。
類型 'CGColorRenderingIntent' 沒有成員 'RenderingIntentDefault'
代碼我的工作:
import CoreImage
// omitted code
public func imageFromPixels(pixels: ([Pixel], width: Int, height: Int)) -> CIImage {
let bitsPerComponent = 8
let bitsPerPixel = 32
let rgbColorSpace = CGColorSpaceCreateDeviceRGB()
let bitmapInfo = CGBitmapInfo(rawValue: CGImageAlphaInfo.premultipliedLast.rawValue) // alpha is last
let providerRef = CGDataProvider(data: NSData(bytes: pixels.0, length: pixels.0.count * sizeof(Pixel)))
let image = CGImageCreate(pixels.1, pixels.2, bitsPerComponent, bitsPerPixel, pixels.1 * sizeof(Pixel), rgbColorSpace, bitmapInfo, providerRef!, nil, true, CGColorRenderingIntent.RenderingIntentDefault)
return CIImage(CGImage: image!)
}
蘋果文檔:
enum CGColorRenderingIntent : Int32 {
case RenderingIntentDefault
case RenderingIntentAbsoluteColorimetric
case RenderingIntentRelativeColorimetric
case RenderingIntentPerceptual
case RenderingIntentSaturation
}
更新的代碼:
在符號let image = CGImage(width: pixels.1,
height: pixels.2,
bitsPerComponent: bitsPerComponent,
bitsPerPixel: bitsPerPixel,
bytesPerRow: pixels.1 * sizeof(Pixel),
space: rgbColorSpace,
bitmapInfo: bitmapInfo,
provider: providerRef!,
decode: nil,
shouldInterpolate: true,
intent: .defaultIntent)
return CGImage(CGImage: image!) // Incorrect argument label in call (have 'CGImage:', expected 'copy:')
Typo:'return CIImage(cgImage:...'with ** I ** – vadian
無論你在看什麼樣的文檔都是舊的,如果你google了一個符號並找到你的方式去找一個以developer.apple開頭的URL .com/library /,你在運行操作系統和Swift 2的文檔。該枚舉的Swift 3/Xcode 8 /相關OS測試文檔是[here](https://developer.apple.com/reference/) coregraphics/cgcolorrenderingintent) – rickster
是的,這只是我返回的類型,主要的問題是找到'CGColorRenderingIntent'枚舉的案例名稱,我總是通過cmd單擊我遇到的任何問題,但由於某種原因,我的Xcode 8只給了我'灰色問號'或者'沒有文檔'的信息,我很驚訝這個版本甚至作爲一個測試版發佈,因爲每次我改變了一些東西,需要10秒鐘才能更新錯誤。它似乎每隔30秒建立一次正確顯示我所有的錯誤。每隔幾秒鐘,我的顏色編碼也會消失。 – tymac