2016-09-15 4 views
3

Просто в процессе преобразования моего кода с быстрой 2,3 до 3. В старом коде я создал градиент через следующий код:CGGradient проблема с быстрыми 3

 let colours:CFArrayRef = [tColour.CGColor, bColour.CGColor] 
     let colorSpace = CGColorSpaceCreateDeviceRGB() 
     let gradient = CGGradientCreateWithColors(colorSpace, colours, nil) 

Когда Xcode 8 преобразовал код он изменился это следующее:

let colours:CFArray = [tColour.cgColor, bColour.cgColor] 
    let colorSpace = CGColorSpaceCreateDeviceRGB() 
    let gradient = CGGradient(colorsSpace: colorSpace, colors: colours, locations: nil) 

Однако код выдает следующее сообщение об ошибке:

Contextual type 'CFArray' cannot be used with array literal

C кто-нибудь предлагает, как правильно преобразовать код.
С благодарностью
Реза

ответ

15

В ролях тип

let colours = [tColour.cgColor, bColour.cgColor] as CFArray 
let colorSpace = CGColorSpaceCreateDeviceRGB() 
let gradient = CGGradient(colorsSpace: colorSpace, colors: colours , locations: nil) 
+1

Не работает в Swift 4 –

+0

@EddieSullivan Я просто проверял успешно Swift 4 – vadian