【发布时间】:2020-12-29 21:46:59
【问题描述】:
我从 8 月开始学习 iOS 开发,现在才开始开发我的第一个应用程序。在我远程知道如何开发我的应用程序之前,我一直在创建具有 MINIMAL 功能的小型原型应用程序,只是为了了解如何完成我实际产品的一部分。现在我被困在一个项目上,该项目只是创建一个帐户并将其存储在一个数组中以供以后使用,即在“我的个人资料”页面上显示数据模型对象及其各种属性;
更具体地说,我只是想了解如何(在最基本的“基本”级别)从用户那里获取输入的信息(用户名、密码、全名),并将其转换为我的数据模型对象,然后将该对象存储到相同类型的对象数组中,最后在配置文件页面上显示数据模型对象。我正在使用它来了解应用程序的一般架构的一部分将是什么样子。
import Foundation
import UIKit
class Account {
var username: String
var password: String
var fullName: String
static var accounts: [Account] = []
init(username: String, password: String, fullName: String) {
self.username = username
self.password = password
self.fullName = fullName
}
}
我的数据模型文件 Account.swift
import UIKit
class RegisterViewController: UIViewController {
@IBOutlet var usernameField: UITextField!
@IBOutlet var passwordField: UITextField!
@IBOutlet var fullNameField: UITextField!
var newAccount = Account(username: "", password: "", fullName: "")
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
@IBAction func createAccount(_ sender: UIButton) {
newAccount.username = usernameField.text!
newAccount.password = passwordField.text!
newAccount.fullName = fullNameField.text!
Account.accounts.append(newAccount)
}
我的注册视图控制器
import UIKit
class ViewController: RegisterViewController {
@IBOutlet var usernameLogin: UITextField!
@IBOutlet var passwordLogin: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
@IBAction func loginToProfile(_ sender: UIButton) {
if usernameLogin.text! == newAccount.username {
print("success")
} else {
print("error")
}
if passwordLogin.text! == newAccount.password {
print("success")
} else {
print("error")
}
}
@IBAction func unwindToLogin(unwindSegue: UIStoryboardSegue) {
}
}
用于登录视图的我的 veiw 控制器。
顶部是创建帐户的视图,底部是登录视图。我现在的问题是通过登录 vc 中的 if 语句,我的控制台输出错误,指示在我尝试注册帐户然后登录后字符串不匹配。
我知道我强制解包了所有 uitextfield 选项,我认为在这种特定情况下影响不大。尽管如此,如果有任何其他明显的问题,请随时指出它们
【问题讨论】:
-
创建
var newAccount = Account(username: "", password: "", fullName: "")这样的帐户有什么意义? -
创建一个 Account 实例来存储和重用用户信息。随意完全教我哈哈。它不会让我在不提供一些默认初始化值的情况下创建帐户实例。我想我应该为该类创建一个自定义初始化程序,但如果这会有所作为的话。还没试过。就像我说的那样,这整件事可能是完全错误的。