【问题标题】:Appending data to model always empty Swift将数据附加到模型总是空的 Swift
【发布时间】:2020-02-24 11:39:18
【问题描述】:

我正在尝试根据选择在模型上附加数据。数据基于单元格索引选择,但由于某些原因,它没有附加到模型中。数据值在这里可能是我在附加数据时做错了什么。 我在追加数据后使用委托并将模型传递给以前的视图控制器。

  • 我需要在 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"

【问题讨论】:

  • 你在哪里声明数据项?
  • 你还没有初始化你的数据项数组....这就是为什么它不附加
  • @jawadAli 它的初始化器,其中变量在类名之后声明。
  • 您也可以显示该代码吗?
  • 声明它但它没有初始化它。你需要类似var dataItems = [Item]()

标签: ios arrays swift model codable


【解决方案1】:

你需要初始化你的dataItems数组

var dataItems = [Item]()

如果你仍然希望它是可选的,你可以这样做

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-11
    • 2018-10-13
    • 2015-01-23
    • 2019-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多