swift函数返回对象需要参数

时间:2015-05-04 19:59:27

标签: ios xcode swift

我有一个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()

1 个答案:

答案 0 :(得分:3)

你不能说SMUser.getUserFromKeychain() - 因为你已经宣布getUserFromKeyChain是这样的:

func getUserFromKeychain() -> (SMUser) {

这意味着getUserFromKeyChain实例方法,而不是方法。您必须将其发送到实例

let SMUser : user = SMUser()
user.getUserForKeychain()

或者,相反,当您声明它时,将声明为类方法

class func getUserFromKeychain() -> (SMUser) {

其中一个。我怀疑第二个是你想要的。

相关问题