我需要根據這個宣告變數 isCandidateResult == false or true
這里isCandidateResult == false比在FilterData需要分配的類中
var jobType: [String] = []
var jobRole: String = ""
和 isCandidateResult == true
var jobType: String = ""
var jobRole: [String] = []
但我怎么做不到
代碼: 為了實作我的目標,我嘗試過這樣的代碼,但是..使用此代碼,我遇到了以下錯誤
import UIKit
var isCandidateResult: Bool = false
if isCandidateResult == false{//Error: Statements are not allowed at the top level
class FilterData {
var jobType: [String] = []
var jobRole: String = ""
init(jobType: [String], jobRole: String) {
self.jobType = jobType
self.jobRole = jobRole
}
}
}
else{
class FilterData {
var jobType: String = ""
var jobRole: [String] = []
init(jobType: String, jobRole: [String]) {
self.jobType = jobType
self.jobRole = jobRole
}
}
}
class FilterViewController: UIViewController {
@IBOutlet weak var filterTableView: UITableView!
@IBOutlet weak var subFilterTableView: UITableView!
@IBOutlet weak var filterTitle: UILabel!
if isCandidateResult == false{
var filterData = FilterData(jobType: [], jobRole: "")//Cannot find 'FilterData' in scope
}
elase{
var filterData = FilterData(jobType: "", jobRole: [])
}
override func viewDidLoad() {
super.viewDidLoad()
}
}
錯誤:1)
不允許在頂層使用陳述句 2) 在范圍內找不到“FilterData”
uj5u.com熱心網友回復:
這不是應該做的。
相反,創建一個模型,該模型可以使用作業型別和角色進行初始化,或者使用作業角色和型別進行初始化,為UITableView. 這樣,您就無需關心它是作業型別和角色還是其他。您只填充模型。并讓tableview管理自己的資料。它不需要知道里面是什么。
struct FilterTableViewModel {
let title: String
let elements: [String]
init(jobType: String, roles: [String]) {
title = jobType
elements = roles
}
init(jobRole: String, types: [String]) {
title = jobRole
elements = types
}
}
和:
class FilterViewController: UIViewController {
var filterData: [FilterTableViewModel] = []
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/384810.html
上一篇:JavaSelenium如何為新驅動程式設定動態變數
下一篇:在if陳述句中宣告變數
