Ios Swift函数调用列表参数类型不正确

Ios Swift函数调用列表参数类型不正确,ios,swift,swift2,xcode7,Ios,Swift,Swift2,Xcode7,我定义了下面列出的swift类,并尝试从viewcontroller调用sfAuthenticateUser。但是Xcode intellisense列出了错误的参数类型,而不是我定义的类型 错误:无法将“字符串”类型的值转换为预期的参数类型“APISFAuthentication” Xcode版本7.1(7B91b) //查看控制器方法调用,如下所示 @IBAction func ActionNext(sender: AnyObject) { let sss = APISFAuthe

我定义了下面列出的swift类,并尝试从viewcontroller调用sfAuthenticateUser。但是Xcode intellisense列出了错误的参数类型,而不是我定义的类型

错误:无法将“字符串”类型的值转换为预期的参数类型“APISFAuthentication”

Xcode版本7.1(7B91b)

//查看控制器方法调用,如下所示

@IBAction func ActionNext(sender: AnyObject) {
    let sss =  APISFAuthentication.sfAuthenticateUser(<#T##APISFAuthentication#>)
}
请参考屏幕截图
问题在于,您试图调用实例函数时,手头没有实际的实例

您必须创建一个实例并调用该实例上的方法:

let instance = APISFAuthentication(...)
instance. sfAuthenticateUser(...)
或将函数定义为类函数:

class func sfAuthenticateUser(userEmail: String) -> Bool {
    ...
}
说明:

Xcode提供给您的以及让您困惑的是,该类提供了通过向其传递实例来获取对其某些实例函数的引用的功能:

class ABC {
    func bla() -> String {
        return ""
    }
}

let instance = ABC()
let k = ABC.bla(instance) // k is of type () -> String
k
现在是函数
bla
。您现在可以通过
k()
等调用
k

class ABC {
    func bla() -> String {
        return ""
    }
}

let instance = ABC()
let k = ABC.bla(instance) // k is of type () -> String