我已经在互联网上搜索了,但我仍然不知道如何在变量中插入值。我试图将一个值插入变量,以便我可以将其附加到数组中,然后将其放入tableviewcell中。
我了解单元格的工作原理,我只是想知道如何将数据插入此变量
这是我的结构体的代码
import Foundation
import UIKit
enum issueType: String {
case major = "Major", blocker = "Blocker", minor = "Minor"
}
struct Issue {
var id: String
var tester: String
var type: issueType
var title: String
var appName: String
var desc: String
var date: Date
var bgColor: UIColor?
init(){
id = ""
tester = ""
type = .minor
title = ""
appName = ""
desc = ""
date = Date()
bgColor = UIColor.main()
}
init(item: [String:Any]){
self.init()
id = item["id"] as? String ?? ""
tester = item["tester"] as? String ?? ""
title = item["title"] as? String ?? ""
appName = item["appName"] as? String ?? ""
desc = item["desc"] as? String ?? ""
if type == .major {
bgColor = UIColor.main()
}
else if type == .blocker {
bgColor = UIColor.blue
}
else {
bgColor = UIColor.green
}
}
}
这是来自不同类的superDidLoad中变量的代码
override func viewDidLoad() {
super.viewDidLoad()
var issue1 = Issue(id: "id", tester: "tester", type: .minor, title: "title", appName: "appName", desc: "desc", date: Date())
issue1.bgColor = UIColor.main()
array.append(issue1)
}
答案 0 :(得分:0)
您的UITableViewCell
子类应具有类型Issue
的某些变量
class YourSubclass: UITableViewCell {
var issue: Issue?
...
}
然后在cellForRowAt
的TableView数据源方法中,将单元格的变量分配为array
中的元素,其索引等于indexPath.row
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
...
cell.issue = array[indexPath.row]
...
}
答案 1 :(得分:0)
在将自己的初始化程序添加到该结构之后,您丢失了默认的成员初始化程序。 为避免这种使用扩展名:
struct Issue {
var id: String
var tester: String
var type: issueType
var title: String
var appName: String
var desc: String
var date: Date
var bgColor: UIColor?
}
extension Issue {
init(){
id = ""
tester = ""
type = .minor
title = ""
appName = ""
desc = ""
date = Date()
bgColor = UIColor.main()
}
init(item: [String:Any]){
self.init()
id = item["id"] as? String ?? ""
tester = item["tester"] as? String ?? ""
title = item["title"] as? String ?? ""
appName = item["appName"] as? String ?? ""
desc = item["desc"] as? String ?? ""
if type == .major {
bgColor = UIColor.main()
}
else if type == .blocker {
bgColor = UIColor.blue
}
else {
bgColor = UIColor.green
}
}
}
但是即使在这种情况下,您也必须默认使用初始化程序初始化所有属性,包括'bgColor'。
var issue1 = Issue(id: "id", tester: "tester", type: .minor, title: "title", appName: "appName", desc: "desc", date: Date(), bgColor: nil)