访问也是结构的数组的值

时间:2019-03-05 22:14:03

标签: arrays struct singleton swift4.2

我试图访问结构数组的属性并将其附加到新用户。我通过为具有其自身属性的结构创建数组属性来做到这一点。

我在调试器中得到1个元素,值为0。我的basket属性为nil,但购物篮中的属性值不是。

我认为我无法通过初始化baskets数组在模型控制器中正确创建用户。理想情况下,创建用户时,数组及其属性将附加。

这是我的模特

struct User: Codable, Equatable {
    var basket: [Basket]
}

struct Basket: Codable, Equatable {
    var user: String
    var color: String
    var style: String
}

这是我的模型控制器

class UserController {
    static var shared = UserController()

    let baskets = [Basket]()
    var users: [User] = []

    func createUser(with user: String, color: String, style: String) {
        let user = User(basket: baskets)
        users.append(user)
    }

这是我的视图控制器

var user: User!
var users: [User] = []
let userController = UserController.shared


override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return users.count
    }

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

        let cell = tableView.dequeueReusableCell(withIdentifier: reuseIdentifier, for: indexPath) as! UserCell

        cell.userLabel.text = user.basket[0].user
        cell.titleLabel.text = user.basket[0].color
        cell.descriptionLabel.text = user.basket[0].style

        return cell
    }

最后,我创建用户的详细视图控制器

var user: User!
var userController = UserController.shared 

@objc private func createUserTapped() {
    guard let user = userTextField.text,
        let color = colorTextField.text,
        let style = styleTextField.text else { return }

    userController.createUser(with: user, color: color, style: style)
    self.navigationController?.popViewController(animated: true)
}

0 个答案:

没有答案