Я пытаюсь получить доступ к свойствам массива моей структуры и добавить их к новому пользователю.Я делаю это, создавая свойство массива для структуры со своими собственными свойствами.
Я получаю 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)
}
Вот мой View Controller
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)
}