我有几个这样定义的私有属性。
private var tableConfig : TableViewConfig<Company, CompanyCell>?
private var tabledata = [Company]() {
didSet {
tableConfig?.items = tabledata
}
}
现在定义了2个其他属性,像这样...
var model: Model?
var companyCell: TableviewCell?
现在,如果在模型中获得的值为Industry
,在companyCell中获得的值为IndustryCell
,那么如何将这些值更新为private var tableConfig : TableViewConfig....
和private var tabledata = [Company]()....
以便它们最终将具有这样的值。
private var tableConfig : TableViewConfig<Industry, IndustryCell>?
private var tabledata = [Industry]() {
didSet {
tableConfig?.items = tabledata
}
}
答案 0 :(得分:0)
您可以使用get
set
变量来实现此结果
var _tabledata: [Industry] {
get {
return tabledata
}
set {
tabledata = newValue
}
}
答案 1 :(得分:0)
由于属性private
表示声明为private
的属性和函数只能在它们声明的范围内访问。
您有两个选择:
fileprivate
(如果呼叫者在同一文件中)或internal
或更低限制。internal
或更低限制的计算属性或方法进行设置。答案 2 :(得分:0)
您可以公开init()
或method
来设置private properties
的值,即
class SampleClass {
private var tableConfig : TableViewConfig<Company, CompanyCell>?
private var tabledata = [Company]() {
didSet {
tableConfig?.items = tabledata
}
}
init(tableData: [Company]) {
self.tabledata = tabledata
}
func add(item: Company) {
self.tabledata.append(item)
}
}
如果想要init
initialise
,可以创建一个private variable
,如果想要method
{{1 }}。