【发布时间】: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