斯威夫特 - 表达太复杂,无法在合理的时间内解决;考虑将表达式分解为不同的子表达式

时间:2015-05-13 07:55:38

标签: ios swift xcode6

当我尝试返回值时,收到此错误消息。

  

/Users/MNurdin/Documents/iOS/xxxxx/RangeSlider.swift:76:109:   表达太复杂,无法在合理的时间内解决;考虑   将表达式分解为不同的子表达式

我的代码

var minimumValue: Float = 0.0
var maximumValue: Float = 1.0
var minimumRange: Float = 0.0
var selectedMinimumValue: Float = 0.2
var selectedMaximumValue: Float = 0.8

var distanceFromCenter: Float = 0.0

var _padding: Float = 20

/**/

func xForValue(value: Float){
    return (self.frame.size.width-(_padding*2))*((value - minimumValue) / (maximumValue - minimumValue))+_padding; //error here
}

func valueForX(x: Float){
    return minimumValue + (x-_padding) / (self.frame.size.width-(_padding*2)) * (maximumValue - minimumValue); //error here
}

请指教。谢谢。

1 个答案:

答案 0 :(得分:1)

添加了函数的返回类型,并将CGFloat投射到Float

func xForValue(value: Float) -> Float {
    return (Float(self.frame.size.width) - (_padding * 2)) * ((value - minimumValue) / (maximumValue - minimumValue)) + _padding;
}

func valueForX(x: Float) -> Float {
    return minimumValue + (x - _padding) / (Float(self.frame.size.width) - (_padding * 2)) * (maximumValue - minimumValue);
}