Ios 将Int转换为CGFloat将导致0.000000
我试图从数组中获取Ios 将Int转换为CGFloat将导致0.000000,ios,swift,int,uicolor,cgfloat,Ios,Swift,Int,Uicolor,Cgfloat,我试图从数组中获取Int值,并将其转换为CGFloats,以便可以从这些红色、绿色和蓝色值创建UIColor。很简单,对吧 我可以成功地从数组中获取Int值,但是当我尝试转换为CGFloat时,结果是0.000000。为什么会这样 let colorArray = NSUserDefaults.standardUserDefaults().arrayForKey("colors") let redValue = colorArray[0] as Int let greenValue = colo
Int
值,并将其转换为CGFloat
s,以便可以从这些红色、绿色和蓝色值创建UIColor
。很简单,对吧
我可以成功地从数组中获取Int
值,但是当我尝试转换为CGFloat
时,结果是0.000000。为什么会这样
let colorArray = NSUserDefaults.standardUserDefaults().arrayForKey("colors")
let redValue = colorArray[0] as Int
let greenValue = colorArray[1] as Int
let blueValue = colorArray[2] as Int
NSLog("%i", redValue) //prints 255
NSLog("%i", greenValue) //prints 250
NSLog("%i", blueValue) //prints 150
let redFloat = CGFloat(redValue) / 255.0
let greenFloat = CGFloat(greenValue) / 255.0
let blueFloat = CGFloat(blueValue) / 255.0
NSLog("%f", redFloat) //prints 0.000000
let color = UIColor(red: redFloat, green: greenFloat, blue: blueFloat, alpha: 1)
如果不除以255.0,则得到相同的结果-0。我在这里做错了什么? < p>这似乎是一个奇怪的问题,基础字符串格式化和转换从<代码> CGFloat <代码>。同样的问题也发生在
NSString(格式:\)
上。如果使用<代码> NSLO(“%F”,ReStound.Butic)<代码>或“代码>打印”(“\”(ReD浮标))或“<代码>打印(ReDFLASH)< /代码>,没有问题。 < P>这似乎是一个奇怪的问题,它的基础字符串格式和转换从<代码> CGFloat < /C> >。同样的问题也发生在NSString(格式:\)
上。如果使用<代码> NSLO(“%F”,ReStound.Butic)<代码>或“代码>打印”(“\”(ReD浮标))或“<代码>打印(ReDFLASH)< /代码>,没有问题。 < P>这似乎是一个奇怪的问题,它的基础字符串格式和转换从<代码> CGFloat < /C> >。同样的问题也发生在NSString(格式:\)
上。如果使用<代码> NSLO(“%F”,ReStound.Butic)<代码>或“代码>打印”(“\”(ReD浮标))或“<代码>打印(ReDFLASH)< /代码>,没有问题。 < P>这似乎是一个奇怪的问题,它的基础字符串格式和转换从<代码> CGFloat < /C> >。同样的问题也发生在NSString(格式:\)
上。如果使用NSLog(“%f”,redFloat.native)
或print(\(redFloat)”)
或只是print(redFloat)
就没有问题。也许CGFloat没有正确地传递到变量参数列表上。-这似乎值得在苹果公司做一个bug报告;beta 4有一系列的变化。是的,提交一个雷达。也许CGFloat没有正确地传递到变量参数列表中。-这似乎值得在苹果公司做一个bug报告;beta 4有一系列的变化。是的,提交一个雷达。也许CGFloat没有正确地传递到变量参数列表中。-这似乎值得在苹果公司做一个bug报告;beta 4有一系列的变化。是的,提交一个雷达。也许CGFloat没有正确地传递到变量参数列表中。-这似乎值得在苹果公司做一个bug报告;beta 4有一系列的变化。是的,雷达。