从Swift中的另一个类调用函数

时间:2015-05-22 14:12:27

标签: swift

我有两个类,Bug和Test。我想从Test类调用bugForName函数,但是我收到了这个错误:

  

“无法使用'(String)'

类型的参数列表调用'bugForName'
import UIKit

class Bug {

    func bugForName(name: String) -> String {
        return "This bug: \(name)"
    }
}

class Test {

    func whatBug() {
        let bugName = "Roach"

        println(Bug.bugForName(bugName))
    }
}

Autocomplete

我错过了什么或者这是Swift中的错误吗?

2 个答案:

答案 0 :(得分:3)

问题是你试图从Bug.Type调用方法,而不是bug的实例。你有几个选择,第一个是让它成为类函数:

class Bug {
    class func bugForName(name: String) -> String {
        return "This bug: \(name)"
    }
}

另一个选择是在发送消息之前创建Bug的实例:

class Test {
    func whatBug() {
        let bugName = "Roach"
        let bug = Bug()
        println(bug.bugForName(bugName))
    }
}

答案 1 :(得分:2)

您的bugForName()是类Bug实例的函数。用以下方式调用它:

Bug().bugForName(bugName))

如果您打算将bugForName()作为类函数,请将其声明为class func