Возврат Bool в закрытие Alamofire

Я использую Swift 2 и Xcode 7.1.

У меня есть функция, которая связывает моих пользователей, но она соединяется в моей базе данных с HTTP. Я использую Alamofire для выполнения этого запроса. Я хочу знать, из контроллера представления, если пользователь подключен.

У меня есть моя функция подключения в классе. И я проверяю соединение в ViewController. Как это :

    class user {

    // ...

    func connectUser(username: String, password: String){

        let urlHost = "http://localhost:8888/project350705/web/app_dev.php/API/connect/"
        let parametersSymfonyG = [
            username, password
        ]
        let url = UrlConstruct(urlHost: urlHost).setSymfonyParam(parametersSymfonyG).getUrl()

        //var userArray = [String:AnyObject]()

        Alamofire.request(.GET, url)
            .responseString { response in

                if let JSON = response.result.value {

                    var result = self.convertStringToDictionary(JSON)!

                    if result["status"] as! String == "success"{
                        let userArray = result["user"] as! [String:AnyObject]
                        userConnect = self.saveUser(userArray)
                    } else{
                        print("ERROR-CONNECTION :\n Status :\(result["status"]!)\n Code :\(result["code"]!)")
                    }
                    return ""
                }
        }
    }

    // ...
}

class MyViewController: UIViewController {

    // ...

    @IBAction func connect(sender: AnyObject?) {

        // CONNECTION
        User.connectUser(self.username.text!, password: self.password.text!)

        // CHECK
        if userConnect != nil {
            print("connected")
        }else{
            print("NotConnected")
        }
    }

    // ...

}

Первое решение: возврат

Для этого потребуется, чтобы моя функция возвращала логическое значение. Только я не могу использовать возврат.

Alamofire.request(.GET, url)
        .responseString { response in

            if let JSON = response.result.value {

                var result = self.convertStringToDictionary(JSON)!

                if result["status"] as! String == "success"{
                    let userArray = result["user"] as! [String:AnyObject]
                    userConnect = self.saveUser(userArray)
                } else{
                    print("ERROR-CONNECTION :\n Status :\(result["status"]!)\n Code :\(result["code"]!)")
                }
                return "" // Unexpected non-void return value in void function
            }
    }

Второе решение:

Я также могу проверить, был ли пользователь зарегистрирован, но перед тестированием я должен дождаться завершения загрузки функции.

users.connectUser(self.username.text!, password: self.password.text!)

// after 
if userConnect != nil {
    print("connected")
}else{
    print("NotConnected")
}

Я бы предпочел вернуть логическое значение. Это облегчит обработку. У тебя есть решение ?

Ответы на вопрос(3)

Ваш ответ на вопрос