我有两个类,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))
}
}
我错过了什么或者这是Swift中的错误吗?
答案 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
。