update tools online for compilador xcode swift swift2 xcode7 xcode7-beta2

xcode - tools - Error: uso del identificador no resuelto ''kCGBlendModeMultiply''



xcode online (1)

Recientemente actualicé a Xcode 7, beta 3.

Y me he encontrado con algunos problemas, parece que no puedo encontrar ninguna pregunta para SO.

Cuando ejecuto mi aplicación, obtengo 3 errores:

Uso del identificador no resuelto ''kCGBlendModeMultiply''

Uso del identificador no resuelto ''kCGLineCapRound''

Uso del identificador no resuelto ''kCGLineJoinMiter''

Sin embargo, los 2 últimos desaparecen, aunque supongo que aparecerán después de que el primero haya sido reparado (de ahí que lo haya incluido en esta pregunta).

¿No vi nada en las notas de la versión acerca de que se eliminen? Así que estoy un poco atascado en qué hacer. Traté de reescribir las líneas, por supuesto, pero las 3 cosas que utilicé ya no aparecen como opciones. En caso de que desaparezcan en el último Swift 2.0, ¿qué puedo usar en su lugar?

Aquí está el código para el primer error.

func alpha(value:CGFloat)->UIImage { UIGraphicsBeginImageContextWithOptions(self.size, false, 0.0) let ctx = UIGraphicsGetCurrentContext() let area = CGRect(x: 0, y: 0, width: self.size.width, height: self.size.height) CGContextScaleCTM(ctx, 1, -1); CGContextTranslateCTM(ctx, 0, -area.size.height) CGContextSetBlendMode(ctx, kCGBlendModeMultiply) CGContextSetAlpha(ctx, value) CGContextDrawImage(ctx, area, self.CGImage) let newImage = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext() return newImage; }

Aquí está el código para los 2 últimos errores:

for layer in [ self.top, self.middle, self.bottom ] { layer.fillColor = nil layer.strokeColor = UIColor.whiteColor().CGColor layer.lineWidth = 4 layer.miterLimit = 4 layer.lineCap = kCALineCapRound layer.masksToBounds = true let strokingPath = CGPathCreateCopyByStrokingPath(layer.path, nil, 4, kCGLineCapRound, kCGLineJoinMiter, 4) layer.bounds = CGPathGetPathBoundingBox(strokingPath) layer.actions = [ "strokeStart": NSNull(), "strokeEnd": NSNull(), "transform": NSNull() ] self.layer.addSublayer(layer) }

¡Cualquier ayuda sería muy apreciada! :)


Esto debería funcionar:

CGContextSetBlendMode(ctx, CGBlendMode.Multiply)

... o incluso solo esto:

CGContextSetBlendMode(ctx, .Multiply)

Si hace Ctrl-click en CGContextSetBlendMode y luego desde su declaración salta (de la misma manera) a la declaración de CGBlendMode entonces verá:

enum CGBlendMode : Int32 { /* Available in Mac OS X 10.4 & later. */ case Normal case Multiply case Screen case Overlay // ... }

Del mismo modo, la otra línea que produce el error debe cambiarse a:

let strokingPath = CGPathCreateCopyByStrokingPath(layer.path, nil, 4, .Round, .Miter, 4)