Swift 无法访问类变量

Swift 无法访问类变量,swift,Swift,我有下面这门课 import Foundation class Tips { //Variables var totalBill: Float var tipPercent: Int var splitBy: Int init(billAmount: Float, tipPercentage: Int, splitByPeople: Int) { totalBill = billAmount tipPercent

我有下面这门课

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
    }

}
calculateTip()
函数中,我看到一个名为
实例成员“totalBill”的错误不能用于类型“Tips”


如何修复此问题?

在func calculateTip()之前,您应该删除class关键字:

变成

func calculateTip() -> Float
使用class关键字使函数保持静态,因此您无法访问类成员,因为该类未实例化

我建议在任何地方都使用Float:

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
    }

}
课堂提示
{
//变数
var totalBill:浮动
var tipPercent:浮动
var splitBy:Float
初始化(billAmount:Float,TipperEntage:Int,splitByPeople:Int)
{
totalBill=billAmount

tipPercent=Float(tipPercentage)/在func calculateip()之前,您应该删除关键字:

变成

func calculateTip() -> Float
使用class关键字使函数保持静态,因此您无法访问类成员,因为该类未实例化

我建议在任何地方都使用Float:

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
    }

}
<代码>课程提示 { //变数 var totalBill:浮动 var tipPercent:浮动 var splitBy:Float 初始化(billAmount:Float,TipperEntage:Int,splitByPeople:Int) { totalBill=billAmount
tipPercent=Float(tipPercentage)//谢谢,这就解决了问题。另外,在上面的函数中计算grandTotal时,我遇到了一个名为“二进制运算符*不能应用于'Float'和'Int'类型的操作数”的错误。如果我需要某种类型的转换,有什么想法吗?您需要使用相同的类型,将Int转换为Float。with:Float(variableName)啊..我明白了..这很有意义..谢谢:)或者,他可以将他的变量声明为
static
,这取决于在特定实例上调用该方法是否有意义。谢谢,这修复了它。另外,我还收到了一个名为在上述函数中计算grandTotal时,二进制运算符*不能应用于“Float”和“Int”类型的操作数。如果我需要某种类型的转换,您有什么想法吗?您需要使用相同的类型,将Int转换为Float。with:Float(variableName)啊..我明白了..这很有意义..谢谢:)或者,他可以将他的变量声明为
static
,这取决于在特定实例上调用该方法是否有意义。