首页 > 解决方案 > 如何正确应用在我的代码中捕获错误?Swift Xcode 清洁架构

问题描述

我目前正在为注册屏幕实现一些代码(使用 swift clean 架构) - 我有在按下注册按钮和出现错误时触发的功能。我将粘贴下面的代码以获得帮助:

import UIKit

protocol SignupFormErrorLogic {
    func showValidationError(_ message: String)
}

class SignupViewController: UIViewController, SignupFormErrorLogic {
    

    
    var interactor: SignupBusinessLogic?
    var router: (NSObjectProtocol & SignupRoutingLogic)?
 
    
    override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
        super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
        setup()
    }
    
    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        setup()
    }
    

    
    private func setup() {
        let viewController = self
        let interactor = SignupInteractor()
        let router = SignupRouter()
        
        viewController.interactor = interactor
        viewController.router = router
        interactor.router = router
        interactor.viewController = viewController
        router.viewController = viewController
    }
    
    
    @IBOutlet var fullNameTextField: UITextField!
    @IBOutlet var emailTextField: UITextField!
    @IBOutlet var passwordTextField: UITextField!

    
    @IBAction func cancelButtonPressed(_ sender: Any) {
        self.dismiss(animated: true, completion: nil)
    }
    
    @IBAction func signupButtonPressed(_ sender: Any) {
        let request = Signup.Request(
            name: fullNameTextField.text!,
            email: emailTextField.text!,
            password: passwordTextField.text!
        )
        
        interactor?.createAccount(request: request)
    }
    
    func showValidationError(_ message: String) {
        let alertCtrl = UIAlertController(title: "Oops! An error occurred", message: message, preferredStyle: .alert)
        alertCtrl.addAction(UIAlertAction(title: "Ok", style: .cancel, handler: nil))
        self.show(alertCtrl, sender: self)
    }
}

当我运行模拟器时,输入我要创建的帐户的详细信息,然后单击注册,它会触发我的错误请求,但我不知道问题是什么。我应该应用 do/try/catch 块来解决问题吗?如果是这样,我应该在哪里/如何应用它?

谢谢

标签: swiftxcode

解决方案


推荐阅读