Добавление данных в модель всегда пустой Swift - PullRequest
0 голосов
/ 24 февраля 2020

Я пытаюсь добавить данные в модель после выбора. Данные основаны на выборе индекса ячейки, но по некоторым причинам они не добавляются в модель. Значения данных здесь могут быть, я делаю что-то не так при добавлении данных. Я использую делегат после добавления данных и передачи модели в предыдущий viewController.

  • Мне нужно добавить данные в Item - selection - см. Модель

Объявление добавления данных var dataItems: [Item]?

Модель:

struct SectionList : Codable {

    let title : String?
    var items : [Item]?
}

struct Item : Codable {

    var textField : String?
    var textValue : String?
    var pickList: [SectionList]?
    var selection: [Item]?
    var multiSelect: Bool?
    var masterId: Int?
    var itemValue: String?

}

Основная функция для добавления и делегирования: здесь dataItems не добавляются значения здесь selectedItem

if let selectedItem = AppData?.pickList?[indexPath.section].items?[indexPath.row] {
  dataItems?.append(selectedItem)
}


@IBAction func bittiBtn(_ sender: Any) {
        print(dataValue)
        pickDelegate?.listPick(listValue: dataValue, selectedItems: dataItems ?? [])
        self.navigationController?.popViewController(animated: true)
    }

Получаемые значения, которые необходимо добавить в dataItems: [Item]?

▿ Item
  ▿ textField : Optional<String>
    - some : "Tipi ve kesiti uygun olmalı"
  - textValue : nil
  - pickList : nil
  - selection : nil
  - multiSelect : nil
  ▿ masterId : Optional<Int>
    - some : 671
  ▿ itemValue : Optional<String>
    - some : "347"

1 Ответ

2 голосов
/ 24 февраля 2020

Вам нужно инициализировать dataItems массив

var dataItems = [Item]()

, и если вы все еще хотите, чтобы он был необязательным, вы можете сделать

var dataItems:[Item]? = [Item]()
...