The following code worked fine in previous development snapshots but fails in the May 9, 2016 snapshot:
let color = UIColor(red: 0.892, green: 0.609, blue: 0.048, alpha: 1.000)
Does anyone know whether this is a bug or if the syntax changed? (Yes, I imported UIKit). Xcode gives an error of ‘Ambiguous use of init(red:green:blue:alpha:)’
Huh! There’s a new overload for that initializer:
The one that takes CGFloats is the one that was there before, but the one taking Floats is new!
You can work around like this:
let color = UIColor(red: CGFloat(0.892), green: CGFloat(0.609), blue: CGFloat(0.048), alpha: CGFloat(1.000))
or
let color = UIColor(red: Float(0.892), green: Float(0.609), blue: Float(0.048), alpha: Float(1.000))
- Dennis

···
On May 11, 2016, at 3:46 PM, Charles Lane via swift-users <swift-users@swift.org> wrote:
The following code worked fine in previous development snapshots but fails in the May 9, 2016 snapshot:
let color = UIColor(red: 0.892, green: 0.609, blue: 0.048, alpha: 1.000)
Does anyone know whether this is a bug or if the syntax changed? (Yes, I imported UIKit). Xcode gives an error of ‘Ambiguous use of init(red:green:blue:alpha:)’
_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users
Huh! There’s a new overload for that initializer:
<Screen Shot 2016-05-11 at 3.52.34 PM.png>
The one that takes CGFloats is the one that was there before, but the one taking Floats is new!
You can work around like this:
let color = UIColor(red: CGFloat(0.892), green: CGFloat(0.609), blue: CGFloat(0.048), alpha: CGFloat(1.000))
or
let color = UIColor(red: Float(0.892), green: Float(0.609), blue: Float(0.048), alpha: Float(1.000))
- Dennis
Wow, that's a ridiculous situation to have. Who uses Float with iOS/tvOS anyway?
I created a workaround, but I hate it:
extension Double {
var cg: CGFloat { return CGFloat(self) }
}
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let c = UIColor(red: 0.5.cg, green: 0.5, blue: 0.5, alpha: 0.5)
}
}
-- E
···
On May 11, 2016, at 9:57 AM, Dennis Weissmann <dennis@dennisweissmann.me <mailto:dennis@dennisweissmann.me>> wrote:
Thanks Dennis. Now I get it!
···
On May 11, 2016, at 9:57 AM, Dennis Weissmann <dennis@dennisweissmann.me> wrote:
Huh! There’s a new overload for that initializer:
<Screen Shot 2016-05-11 at 3.52.34 PM.png>
The one that takes CGFloats is the one that was there before, but the one taking Floats is new!
You can work around like this:
let color = UIColor(red: CGFloat(0.892), green: CGFloat(0.609), blue: CGFloat(0.048), alpha: CGFloat(1.000))
or
let color = UIColor(red: Float(0.892), green: Float(0.609), blue: Float(0.048), alpha: Float(1.000))
- Dennis
On May 11, 2016, at 3:46 PM, Charles Lane via swift-users <swift-users@swift.org <mailto:swift-users@swift.org>> wrote:
The following code worked fine in previous development snapshots but fails in the May 9, 2016 snapshot:
let color = UIColor(red: 0.892, green: 0.609, blue: 0.048, alpha: 1.000)
Does anyone know whether this is a bug or if the syntax changed? (Yes, I imported UIKit). Xcode gives an error of ‘Ambiguous use of init(red:green:blue:alpha:)’
_______________________________________________
swift-users mailing list
swift-users@swift.org <mailto:swift-users@swift.org>
https://lists.swift.org/mailman/listinfo/swift-users
I agree, however, I like your workaround better than all the extra parentheses and CGFloats!
···
On May 11, 2016, at 10:37 AM, Erica Sadun <erica@ericasadun.com> wrote:
On May 11, 2016, at 9:57 AM, Dennis Weissmann <dennis@dennisweissmann.me <mailto:dennis@dennisweissmann.me>> wrote:
Huh! There’s a new overload for that initializer:
<Screen Shot 2016-05-11 at 3.52.34 PM.png>
The one that takes CGFloats is the one that was there before, but the one taking Floats is new!
You can work around like this:
let color = UIColor(red: CGFloat(0.892), green: CGFloat(0.609), blue: CGFloat(0.048), alpha: CGFloat(1.000))
or
let color = UIColor(red: Float(0.892), green: Float(0.609), blue: Float(0.048), alpha: Float(1.000))
- Dennis
Wow, that's a ridiculous situation to have. Who uses Float with iOS/tvOS anyway?
I created a workaround, but I hate it:
extension Double {
var cg: CGFloat { return CGFloat(self) }
}
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let c = UIColor(red: 0.5.cg, green: 0.5, blue: 0.5, alpha: 0.5)
}
}
-- E
This is a known regression that is a fallout of the changes to playground literals, it is high priority to get fixed.
-Chris
···
On May 11, 2016, at 7:37 AM, Erica Sadun via swift-users <swift-users@swift.org> wrote:
On May 11, 2016, at 9:57 AM, Dennis Weissmann <dennis@dennisweissmann.me <mailto:dennis@dennisweissmann.me>> wrote:
Huh! There’s a new overload for that initializer:
<Screen Shot 2016-05-11 at 3.52.34 PM.png>
The one that takes CGFloats is the one that was there before, but the one taking Floats is new!
You can work around like this:
let color = UIColor(red: CGFloat(0.892), green: CGFloat(0.609), blue: CGFloat(0.048), alpha: CGFloat(1.000))
or
let color = UIColor(red: Float(0.892), green: Float(0.609), blue: Float(0.048), alpha: Float(1.000))
- Dennis
Wow, that's a ridiculous situation to have. Who uses Float with iOS/tvOS anyway?
I created a workaround, but I hate it: