ios swift parse:如何处理错误代码

时间:2015-02-19 12:56:19

标签: ios swift parse-platform

在注册过程中,用户可能会导致多个错误,例如 已使用的用户名,无效的电子邮件地址等......

Parse在错误对象中返回所有需要的信息,请参阅http://parse.com/docs/dotnet/api/html/T_Parse_ParseException_ErrorCode.htm

我能找到的是如何使用它们,例如如何访问它们以便编写一个开关来捕捉所有可能性:

                user.signUpInBackgroundWithBlock {
                    (succeeded: Bool!, error: NSError!) -> Void in
                    if error == nil {
                        // Hooray! Let them use the app now.
                        self.updateLabel("Erfolgreich registriert")
                    } else {
                        println(error.userInfo)
                    }
                }

如何切换可能的错误代码? 请指教 谢谢!

3 个答案:

答案 0 :(得分:9)

NSError还有一个名为code的属性。该代码包含您需要的错误代码。所以你可以使用该代码创建一个switch语句:

user.signUpInBackgroundWithBlock {
    (succeeded: Bool!, error: NSError!) -> Void in
    if error == nil {
        // Hooray! Let them use the app now.
        self.updateLabel("Erfolgreich registriert")
    } else {
        println(error.userInfo)
        var errorCode = error.code

        switch errorCode {
        case 100:
            println("ConnectionFailed")
            break
        case 101:
            println("ObjectNotFound")
            break
        default:
            break
        }
    }
}

答案 1 :(得分:1)

嗨,我会做像

这样的事情
if let error = error,let code = PFErrorCode(rawValue: error._code) {
    switch code {
    case .errorConnectionFailed:
        print("errorConnectionFailed")
    case .errorObjectNotFound:
        print("errorObjectNotFound")
    default:
        break
    }
}

您有完整的错误列表:https://github.com/parse-community/Parse-SDK-iOS-OSX/blob/master/Parse/PFConstants.h#L128

答案 2 :(得分:0)

您还可以使用PFErrorCode

user.signUpInBackgroundWithBlock {
    (succeeded: Bool!, error: NSError!) -> Void in
    if error == nil {
        // Hooray! Let them use the app now.
        self.updateLabel("Erfolgreich registriert")
    } else {
        println(error.userInfo)
        var errorCode = error!.code

        switch errorCode {
           case PFErrorCode.ErrorConnectionFailed.rawValue:
              println("ConnectionFailed")
           case PFErrorCode.ErrorObjectNotFound.rawValue:
              println("ObjectNotFound")
           default:
              break
        }
    }
}