如何使用Swift调用类中的实例方法

时间:2014-06-16 21:27:50

标签: swift

我遇到了在类本身中调用实例方法的问题。如果有人能为我提供一些见解,我将不胜感激。 我目前的代码如下:

class Rect
{
func printthis() -> String {
    return "this is working or what"
}

var toPrint:String = self.printthis()

}

我在Xcode中遇到的错误是:使用未解析的标识符'self'。

我在这里缺少什么?

3 个答案:

答案 0 :(得分:4)

如果没有实例,则无法调用实例方法。 class仅仅是实例的模板。所以我不想你在这里做什么......

但答案是 no ,你不能从类定义中调用实例方法,因为还没有实例。


也许您想要对方法进行delcare并使用它来创建实例变量?如果是这样,你可以这样做:

class Rect {
    class func printthis() -> String {
        return "this is working or what"
    }

    var toPrint:String

    init() {
        toPrint = Rect.printthis()
    }
}

var r = Rect()
println(r.toPrint) //-> this is working or what

答案 1 :(得分:2)

问题是swift严格要求启动所有属性。 你可以作为一种解决方法

class Rect
{
    func printthis() -> String {
        return "this is working or what"
    }

    var toPrint:String = ""

    init() {
        toPrint = printthis()
    }

}

答案 2 :(得分:1)

类的一个实例未初始化并且能够被引用(即使是自己'),直到为其所有变量赋值。

可能适合您的选项是将您的变量声明为隐式解包的可选项,默认情况下将其指定为nil。然后在类的init方法中,由于所有变量都已赋值,因此您可以开始在实例上调用方法。

class Rect {
    var toPrint: String!

    init() {
        toPrint = printthis()
    }

    printthis() -> String {
        return "this will work"
    }
}