在Xcode 14上无法编译图表

回答 5 浏览 7551 2022-10-10

我在库中出现以下错误:

  • Type 'ChartDataSet' does not conform to protocol 'RangeReplaceableCollection'

  • Unavailable instance method 'replaceSubrange(_:with:)' was used to satisfy a requirement of protocol 'RangeReplaceableCollection'.

Saurabh Sharma 提问于2022-10-10
哪个库?你能展示一下相关的代码吗?Paulw11 2022-10-10
@Paulw11 danielgindi/ChartsSaurabh Sharma 2022-10-10
作者需要接受这个pr github.com/danielgindi/Charts/pull/4942Paulw11 2022-10-10
5 个回答
#1楼 已采纳
得票数 46

将其追加到扩展 ChartDataSet:RangeReplaceableCollection

public func replaceSubrange<C>(_ subrange: Swift.Range<Int>, with newElements: C) where C : Collection, ChartDataEntry == C.Element {
    entries.replaceSubrange(subrange, with: newElements)
    notifyDataSetChanged()
}
Saurabh Sharma 提问于2022-10-10
我现在有一个奇怪的错误。当我做了上面的修改后,我的图表代码可以正常编译,但Xcode报告说一个完全不同的包现在从项目中丢失了!wtf?另一个包仍然在那里,正是它以前的位置。john elemans 2022-11-23
#2楼
得票数 1

我使用的是Xcode 14.2。我从podFile中删除了Charts,然后通过SPM添加了它。然而,要注意只包括图表(4.1.0)而不是动态图表。后者会导致Algorithms的"Module not found"错误。

threadpool0 提问于2023-01-15
#3楼
得票数 0

它Master brunch解决了。

将 master brunch 添加到您的项目,而不是SPM中的"Up to next major version"。 并在CacaoPods中使用:

pod 'Charts', :git => 'https://github.com/danielgindi/Charts.git', :branch => 'master'

Artsem Sharubin 提问于2022-11-18
#4楼
得票数 0

我也遇到了同样的事情,我使用swift软件包管理器导入图表,更新swift软件包管理器后,错误消失了。但是,图表的版本仍然是4.0。图表以外的包可能是罪魁祸首。

yuta endo 提问于2022-12-21
#5楼
得票数 0

我新安装了XCode 14.1,在Charts cocoapod库上发现多个错误。在网上找到了多个解决方案,但没有一个是完全有效的,对我来说是有意义的。最后使用Swift软件包管理器为Charts解决了这个问题。

解决方案:从Podfile中删除Charts pod,并使用url为其添加SPM(Swift Package Manager)。

https://github.com/danielgindi/Charts.git

请确保你把版本改为:

upToNextMajor(from: "4.1.0")

enter image description here

mAc 提问于2022-12-08
Tomerikoo 修改于2023-02-09