2015-09-10 14 views
6

Chiunque sa che cosa questo non funziona (Static membro min non può essere utilizzato su un'istanza di tipo CGFloat. Nell'estensione.Perché max non funziona nell'estensione CGFloat in Swift?

extension CGFloat { 
    mutating func normalize() { 
     self = min(max(CGFloat(0), self), CGFloat(1)) 
    } 
} 

mentre questo funziona

let f: CGFloat = CGFloat(0.4) 
let maxValue = max(f, 1) 

risposta

12

È possibile ottenere questo al lavoro specificando Swift.min e Swift.max come tale:

extension CGFloat { 
    mutating func normalize() { 
     self = Swift.min(Swift.max(CGFloat(0), self), CGFloat(1)) 
    } 
} 

quando si utilizza solo minimo e massimo è incerto se si intende CGFloat.min o Swift.min

Problemi correlati