3

ログインが正しいかどうかをチェックする機能があります。OKなら次の画面を表示します。ユーザーが間違っている場合は、セグエをキャンセルしてアラートを表示します。

shouldPerformSegueWithIdentifier 関数でこの関数を呼び出すと、(ユーザーが正しいかどうかにかかわらず) ブール変数に値が渡され、shouldPerformSegueWithIdentifier の戻り値がこのブール値になるため、問題が発生します。問題は、その値を使用せず、デフォルトのままであることです。これは私のコードです:

override func shouldPerformSegueWithIdentifier(identifier: String!, sender: AnyObject!) -> Bool {

    var userIsCorrect = false //THIS IS THE BOOLEAN

    if identifier == "fromLogInToGetIn" {

        self.loginRequest("http://myurl.com",

            withParams: ["email":"email@email.com","password":"password"])

        {

            (succeeded: Bool, msg: String) -> () in

            var alert = UIAlertView(title: "Success!", message: msg, delegate: nil, cancelButtonTitle: "Okay.")

            if(succeeded) {

                if msg == "0"

                {

                    userIsCorrect = false // BOOLEAN DOES NOT TAKE THE VALUE

                    alert.title = "Error"

                    alert.message = "Incorrect user"

                }

                else

                {

                    userIsCorrect = true // BOOLEAN DOES NOT TAKE THE VALUE

                }

            }

            else {

                userIsCorrect = false // BOOLEAN DOES NOT TAKE THE VALUE

                alert.title = "Error"

                alert.message = "Something is wrong"

            }

            // Move to the UI thread

            dispatch_async(dispatch_get_main_queue(), { () -> Void in

                // Show the alert

                if userIsCorrect == false

                {

                    alert.show()

                }

            })

        }

    }

    return userIsCorrect // ALWAYS RETURN DEFAULT VALUE

}

前もって感謝します。

4

1 に答える 1