2016-05-11 6 views
0

にアクセスすることができません私はcalculateTip()機能では、クラス変数

import Foundation 

class Tips 
{ 
    //Variables 
    var totalBill: Float 
    var tipPercent: Int 
    var splitBy: Int 

    init(billAmount: Float, tipPercentage: Int, splitByPeople: Int) 
    { 
     totalBill = billAmount 
     tipPercent = tipPercentage 
     splitBy = splitByPeople 
    } 

    class func calculateTip() -> Float 
    { 
     var grandTotal = totalBill + ((totalBill * tipPercent)/100) 
     return grandTotal/splitBy 
    } 

} 

、私はエラーを見ています以下の迅速なクラスがInstance member "totalBill" cannot be used on type "Tips"私はこの問題を解決するにはどうすればよい

と呼ばれていますか?

答えて

2

あなたは)(FUNCのcalculateTip前クラスキーワードを削除する必要があります。

class func calculateTip() -> Float 

はあなたの関数は、静的行い、あなたがクラスのメンバにアクセスすることはできませんクラスキーワードを使用して

func calculateTip() -> Float 

になりますクラスがインスタンス化されていないため、

私はお勧めしますeどこにでも浮動小数点:

class Tips 
{ 
    //Variables 
    var totalBill: Float 
    var tipPercent: Float 
    var splitBy: Float 

    init(billAmount: Float, tipPercentage: Int, splitByPeople: Int) 
    { 
     totalBill = billAmount 
     tipPercent = Float(tipPercentage) // <--convert 
     splitBy = Float(splitByPeople) // <--convert 
    } 

    class func calculateTip() -> Float 
    { 
     var grandTotal = totalBill + ((totalBill * tipPercent)/100) 
     return grandTotal/splitBy 
    } 

} 
+0

ありがとうございました。また、私は上記の関数でgrandTotalを計算する際に、 "Float型とInt型のオペランドにはバイナリ演算子*を適用できません"というエラーが出ています。何らかの型変換が必要な場合は何ですか? – Jake

+0

Float(variableName) – sonique

+0

ああ..わかりました。それは意味があります。ありがとう:) – Jake