ios - 在swift 5中从结构中获取一个变量
问题描述
在 swift 5 中从 struct 中获取一个变量:
我想 EResults
从 GetSystemCats 内部获取!
我想把它放在数组中
struct GetSystemCats {
var responseCode: Int?
var message: String?
var status: Bool?
var results: [EResults]
public init(response: [String: Any]) {
self.responseCode = response["responseCode"] as? Int
self.message = response["message"] as? String
self.status = response["status"] as? Bool
let results = response["results"] as! [[String: Any]]
self.results = []
for item in results {
let result = EResults(result: item)
self.results.append(result)
}
}
}
struct EResults {
var title: String?
var id: Int?
var sub_category: [Category]
public init(result: [String: Any]) {
self.title = result["title"] as? String
self.id = result["id"] as? Int
let sub_category = result["sub_category"] as! [[String: Any]]
self.sub_category = []
for item in sub_category {
let result = Category(response: item)
self.sub_category.append(result)
}
}
}
struct Category {
var title: String?
var id: Int?
public init(response: [String: Any]) {
self.title = response["title"] as? String
self.id = response["id"] as? Int
}
}
我用它title
在Category
表格视图中显示
请帮我!!
解决方案
为了让每个人都Category
知道它所属的 ,只需将它传递给初始化器:.title
EResults
struct EResults {
var title: String?
var id: Int?
var sub_category: [Category]
public init(result: [String: Any]) {
self.title = result["title"] as? String
self.id = result["id"] as? Int
let sub_category = result["sub_category"] as! [[String: Any]]
self.sub_category = []
for item in sub_category {
let result = Category(response: item, in: self)
self.sub_category.append(result)
}
}
}
struct Category {
var eresultTitle: String?
var title: String?
var id: Int?
public init(response: [String: Any], in eResult: EResults) {
self.eresultTitle = eResult.title
self.title = response["title"] as? String
self.id = response["id"] as? Int
}
}
注意:作为一般建议,我完全建议您研究一下,Codable
因为它可以让您摆脱所有这些可选变量 - 通常首选不可变结构,并且可以为您节省大量解包和提供默认值的需要(例如丑陋的代码,如thing.label.text = category?.title ?? "unknown"
) . 不过,您要求Category
s 知道.title
它的父母EResult
会有点尴尬。
推荐阅读
- python - 将 3D 列表更改为 2D 列表
- javascript - 浏览器是否可以检查它是否具有 JS 库而不管其来源并使用它?
- python - 如何使用geojson和shapely确定一个点是否在多边形内
- html - 如何在 perl 中向标准输出添加新行
- php - Composer 不尊重安装程序路径
- python - 使用 numpy where 结果从一个数组到另一个
- javascript - 使用 JavaScript 在 select2 中设置依赖下拉列表的默认值
- json - 如何获取json字段?
- ios - 快速创建 2 个可扩展行下拉菜单?
- pipeline - Azure Key Vault Linked 服务不工作,调试失败,触发成功