2014-09-29 52 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 
}