推荐解决方案:
4.1.0解决了这两个问题
下载4.1.0的demo, 然后手动导入Charts
问题一
- Type ‘ChartDataSet’ does not conform to protocol ‘RangeReplaceableCollection’
- Unavailable instance method ‘replaceSubrange(_:with:)’ was used to satisfy a requirement of protocol ‘RangeReplaceableCollection’
解决方案:
// MARK: RangeReplaceableCollection
extension ChartDataSet: RangeReplaceableCollection {
在上面的扩展中加上下面的方法
public func replaceSubrange<C>(_ subrange: Swift.Range<Int>, with newElements: C) where C :
Collection, ChartDataEntry == C.Element {
}
参考博客:
XCode14 Charts报错:Type ‘ChartDataSet’ does not conform to protocol ‘RangeReplaceableCollection’ - 简书
问题二
- Referencing instance method ‘makeIterator()’ on ‘Collection’ requires the types ‘IndexingIterator’ and ‘IndexingIterator’ be equivalent
解决方法:
for case let set as RadarChartDataSetProtocol in (radarData as ChartData) where set.isVisible
{
drawDataSet(context: context, dataSet: set, mostEntries: mostEntries)
}
参考链接
Support for Xcode 14 · Issue #4860 · danielgindi/Charts - GitHub