我的目标是访问另一个类sayName()内的类Klass中包含的方法Manny

class Manny {
    class Klass {
        func sayName() {
            print("Klass")
        }
    }
}

编写Manny.Klass.sayName()会返回错误,因为它期望括号内包含一些代码:

call 中的参数#1缺少自变量

不过,方法sayName()没有任何参数。

我知道我可以使用点符号Manny将消息发送到类Manny.myMethod(),但是如何访问另一个类中的一个类的方法呢?

最佳答案

您的问题是您的函数sayName()是实例函数,而不是类函数。因此,如果没有Klasse类的实例,则无法调用该方法。

将函数的类型更改为类类型,或者先创建一个实例,然后在该实例上调用该函数:

class Manny {
    class Klass {
        class func sayName() {
            print("Klass")
        }
    }
}

Manny.Klass.sayName()


class Manny {
    class Klass {
        func sayName() {
            print("Klass")
        }
    }
}

let klasse = Manny.Klass()
klasse.sayName()

两者都正确打印

克拉斯

关于ios - 如何在Swift中访问类的类的方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33592456/

10-10 21:32