opiniones mercadolibre caracteristicas acer swift3

swift3 - mercadolibre - Xcode 8 Beta 4 Swift 3: comportamiento "redondo" cambiado



acer swift 3 review (1)

Esto se debe a un conflicto de nombres con las nuevas funciones de redondeo en el protocolo FloatingPoint , round() y round() rounded() , que se han agregado a Swift 3 a partir de Xcode 8 beta 4.

Por lo tanto, es necesario eliminar la ambigüedad especificando que se está refiriendo a la función global round() en el módulo de Darwin :

return Darwin.round(v) * divisor

O, mejor aún, simplemente haga uso de las nuevas funciones de redondeo y llame a rounded() en v :

return v.rounded() * divisor

Tengo la siguiente extensión simple para Double , que funcionó bien en todo hasta Xcode 8 beta 3

public extension Double { public func roundTo(_ decimalPlaces: Int) -> Double { var v = self var divisor = 1.0 if decimalPlaces > 0 { for _ in 1 ... decimalPlaces { v *= 10.0 divisor *= 0.1 } } return round(v) * divisor } }

A partir de Beta 4, me aparece "No se puede usar miembro mutante en un valor inmutable: ''uno mismo'' es inmutable" en la función round en el retorno: ¿alguien tiene alguna pista?