2014-12-05 1 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!)) 

및 컴파일러는 저에게 말한다 : 추가 인수를 호출

이 :

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

수율 : 추가 인수를 호출

이를 :

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

있는 수율 : 추가 전화 에 인수이 : 산출

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

: 통화에서 추가 인수.

순열과 인내심이 부족합니다. 누구든지 전화하는 방법에 대해 알려주시겠습니까? 그리고 그 동안 스텁을 편집하여 성공과 실패를 반환 (오류 코드 포함)하는 방법은 무엇입니까?

감사합니다.

: bp :

+0

function (user = "bob"..)? – chris

+0

public func 대신 수정 자 클래스 func을 사용하십시오. – Ian

+0

어느 쪽도 성공하지 못했습니다 ...하지만 고마워요. –

답변

1

이것은 클래스 메소드 인 것처럼 함수를 호출하기 때문입니다.

예 : UserStore 인스턴스를 만들어야합니다.

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