Search code examples
savensuserdefaultsuicolorcgfloat

Swift: Error saving UIColor to NSUserDefaults (CGFloat is not convertible to Float)


I'm trying to save the RGB values of a UISlider but getting the following error:

'CGFloat' is not convertible to 'Float'

private func saveDisplayColor() {
    var color = sliderView.backgroundColor
    let colors = CGColorGetComponents(color?.CGColor)

    var defaults:NSUserDefaults = NSUserDefaults.standardUserDefaults()
    defaults.setFloat(colors[0], forKey:kFontSelectedColorR)
    defaults.setFloat(colors[1], forKey:kFontSelectedColorG)
    defaults.setFloat(colors[2], forKey:kFontSelectedColorB)
    defaults.synchronize()
}

Sorry but I'm lost here. I'm seeing the correct values when I do:

    println(colors[0])
    println(colors[1])
    println(colors[2])

Any help to understand the error mentioned and also a possible fix?


Solution

  • Seems I just needed to wrap it with CGFloat:

    defaults.setFloat(CGFloat(colors[0]), forKey:kFontSelectedColorR)