我有一个SMUser
类,它有getUserFromKeychain
方法,在声明中没有参数但是当我调用方法时Xcode告诉我把SMUser
作为参数???我错过了什么吗?这是我在SMUser
类中的方法声明:
func getUserFromKeychain() -> (SMUser) {
var userDatas: NSDictionary = NSUserDefaults.standardUserDefaults().objectForKey("user") as! NSDictionary
var user: SMUser = SMUser.init(userSettings: userDatas)
return user
}
SMLoginController
中的方法调用:
var user: SMUser = SMUser.getUserFromKeychain()
答案 0 :(得分:3)
你不能说SMUser.getUserFromKeychain()
- 因为你已经宣布getUserFromKeyChain
是这样的:
func getUserFromKeychain() -> (SMUser) {
这意味着getUserFromKeyChain
是实例方法,而不是类方法。您必须将其发送到实例:
let SMUser : user = SMUser()
user.getUserForKeychain()
或者,相反,当您声明它时,将声明为类方法:
class func getUserFromKeychain() -> (SMUser) {
其中一个。我怀疑第二个是你想要的。