gpt4 book ai didi

swift - 类中的辅助类实现协议(protocol)

转载 作者:行者123 更新时间:2023-11-30 11:12:00 26 4
gpt4 key购买 nike

我有协议(protocol) ChartData

protocol ChartData {
var dataHelper: DataHelper { get set }
var chartValues: [ChartValues] { get set }
}

并且类实现这个协议(protocol)

class SalesChartData: ChartData {
var dataHelper: DataHelper
var chartValues: [ChartValues] = []

init() {
dataHelper = DataHelper(data: ??? how to pass SalesChartData here ???)
}
}

和辅助类:

class DataHelper {

var data: ChartData

init(data: ChartData) {
self.data = data
}

// use ChartData data.chartValues for example...
}

问题是如何将 SalesChartData 传递给 DataHelper(传递“self”不起作用)?我需要在实现 ChartData 协议(protocol)的每个类中访问 DataHelper。我做错了吗?应该如何构建呢?我想过滤等在DataHelper中传递的数据chartValues。感谢任何想法

//编辑:

我做了类似的事情,但这种结构并不优雅。如何改进?

init() {
dataHelper = DataHelper()
dataHelper.setData(data: self)
}

最佳答案

尝试使用惰性:

class SalesChartData: ChartData {
lazy var dataHelper: DataHelper = DataHelper(data: self)
var chartValues: [ChartValues] = []
}

关于swift - 类中的辅助类实现协议(protocol),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52093622/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com