2014-12-05 57 views
0

我被賦予了功能存根如下:迅速FUNC原型混亂

public class UserStore { 
    public func login(email:String, password:String, completion:(success:Bool, error:NSError)) { 

    } 

    public func forgotPassword(email:String, completion:(success:Bool, error:NSError)) { 

    } 

    public func register(user:User, completion:(success:Bool, error:NSError)) { 

    } 
} 

和我有點困惑 - 我怎樣把這個?我曾經嘗試這樣做:

var error : NSError? 
var success : Bool = false 
UserStore.login("bob", "password", (success, error!)) 

和編譯器告訴我:額外的ARG呼叫

這:

UserStore.login("bob", "password", completion:(success, error!)) 

產量:額外的ARG呼叫

這:

UserStore.login("bob", "password", completion:(&success, &error)) 

,收益率:呼叫 額外的ARG和這樣的:

let email = emailTextField.text 
    let pw = passwordTextField.text 
    var error : NSError? 
    var success : Bool = false 
    var completion = (success, error) 
    UserStore.login(email, pw, &completion) 

這將產生:在調用額外的ARG。

我用完了排列和耐心 - 任何人都可以請說明如何調用它?當你在這裏,我如何編輯存根以返回成功和失敗(帶有錯誤代碼)?

謝謝!

:bp:

+0

function(user =「bob」..)? – chris 2014-12-05 00:59:16

+0

嘗試使修飾符類func代替公共func – Ian 2014-12-05 00:59:38

+0

沒有成功......但謝謝。 – 2014-12-05 01:05:59

回答

1

這是因爲您正在調用函數,就好像它們是類方法一樣。

您需要創建一個UserStore實例,例如

var us = UserStore() 
us.login("bob", password:"password", completion:(success, error!))