2014-09-29 53 views
1

我在“AnalyzeInput”类的return语句中不断收到错误,“无法用类型为'($ T18,Double)'”的参数列表调用'*',没有意义,因为所有四个变量在其方法头文件中定义为Double。下面是两个相关的类,删除了不相关的代码:Swift:乘以四个Double变量时出错

class AnalyzeInput { 

    // Constructor, initialize InputInfo, add information to it etc etc 

    var remainingToAnalyze: String 
    var information: InputInfo 

    func findOutput() { 
     return information.getVolumeAmount() * information.getMeasurement().getMiliplier() * information.getConcentration() * information.getCompoundMolarMass() 
    } 
} 

class InputInfo { 
    var volumeAmount: Double = 0 
    var measurementType: Measurement = Measurement(short: "null", singular: "null", plural: "null", multiplier: 0) 
    var concentration: Double = 0 
    var compoundMolarMass: Double = 0 

    init() { 
    } 

    func setVolumeAmount(volumeAmount: Double) { 
     self.volumeAmount = volumeAmount 
    } 

    func setMeasurementType(measurement: Measurement) { 
     self.measurementType = measurement 
    } 

    func setConcentration(concentration: Double) { 
     self.concentration = concentration 
    } 

    func setCompound(compoundMolarMass: Double) { 
     self.compoundMolarMass = compoundMolarMass 
    } 

    func getVolumeAmount() -> Double { 
     return volumeAmount 
    } 

    func getMeasurement() -> Measurement { 
     return measurementType 
    } 

    func getConcentration() -> Double { 
     return concentration 
    } 

    func getCompoundMolarMass() -> Double { 
     return compoundMolarMass 
    } 
} 

我该如何解决这个错误?

回答

2

findOutput没有返回类型Double。如果你想返回一个double,你需要正确地声明返回类型。此外,您不需要第二类中的所有getter/setter方法 - 只需使用点运算符即可访问属性。最后,在您的回电中拼写错误“乘数”。所以:

func findOutput() -> Double { 
    return information.volumeAmount * information.measurement.multiplier * information.concentration * information.compoundMolarMass 
}