ios - ViewModel 函数:无法赋值:'error' 是 'let' 常量
问题描述
我正在尝试快速学习ViewModel
,并且我创建了一个函数来处理错误。
但是当我在ViewController
文件中调用该函数时,它会说:
Cannot assign to value: 'error' is a 'let' constant
有没有什么办法解决这一问题?我仍然是一名学生,正在寻找最好的建议。
非常感谢。
以下是我的代码,你们可以帮帮我。
SignUpError.swift :
class SingUpError {
func errorMessage(name: String?, lastName: String?,email: String?, password: String?, error: String?){
enum ErrorMessage: String {
case noName = "Name cannot be empty"
case noLastName = "Last name cannot be empty"
case noEmail = "Email cannot be empty"
case noPassword = "Password cannot be empty"
}
if name == "" {
error = ErrorMessage.noName.rawValue
}
}
}
新用户VC.swift:
class NewUserVC: UIViewController {
// Var
var vm = SingUpError()
// Outlet Text Fields
@IBOutlet weak var nameText: UITextField!
@IBOutlet weak var lastNameText: UITextField!
@IBOutlet weak var emailText: UITextField!
@IBOutlet weak var passwordText: UITextField!
// Outlet Labels
@IBOutlet weak var nameErrLbl: UILabel!
@IBOutlet weak var lastNameErrLbl: UILabel!
@IBOutlet weak var emailErrLbl: UILabel!
@IBOutlet weak var passwordErrLbl: UILabel!
@IBAction func submiButton(_ sender: UIButton) {
submitData()
}
override func viewDidLoad() {
super.viewDidLoad()
}
func submitData() {
guard
let name = nameText.text,
let lastName = lastNameText.text,
let email = emailText.text,
let password = passwordText.text
else {return}
vm.errorMessage(name: name, lastName: lastName, email: email, password: password, error: nameErrLbl.text)
}
}
解决方案
你需要做这样的事情
class SingUpError {
func errorMessage(name: String?, lastName: String?,email: String?, password: String?, error: String?) -> String{
var errorMessage : String = ""
enum ErrorMessage: String {
case noName = "Name cannot be empty"
case noLastName = "Last name cannot be empty"
case noEmail = "Email cannot be empty"
case noPassword = "Password cannot be empty"
}
if name == "" {
errorMessage = ErrorMessage.noName.rawValue
}
return errorMessage
}
}
推荐阅读
- python - 提到不支持在 python 中读取 CSV 文件
- pine-script - 绘制与 SMA 线相切的线段
- r - 从 R 中的 CSV 文件创建镶木地板文件目录
- node.js - .npmrc 忽略了私有包
- c# - Quartz.net Create with job with Dependency Injection
- javascript - 如何使用检索图像作为单选按钮的可绘制对象
- sql - SQL - 按周末分组
- android - android 中的文件 data/data/com.app.myapp/files/PersistedInstallation.XXXX.json 似乎包含身份验证令牌。做什么的?
- mule - 如何在不使用 Dataweave 中的列名的情况下创建 Excel 文件键值映射?
- pandas - Auto Arima Fit 警告