iOS Charts 错误

发布时间 2023-07-24 09:31:01作者: xiao孛

iOS Charts 错误

Type ‘ChartDataSet‘ does not conform to protocol ‘RangeReplaceableCollection

解决办法:

方法一:

app 版本最低支持 iOS 12,升级 Charts 到 4.1.0版本,或者升级到 DGCharts,库作者已经修复了这个bug

方法二:

使用pod install注入代码

1、删除charts pod库

2、在podfile里面添加

post_install do |installer|
    ### 修复 Charts 编译问题
    find_and_replace("Pods/Charts/Source/Charts/Data/Implementations/Standard/ChartDataSet.swift","extension ChartDataSet: RangeReplaceableCollection {", "extension ChartDataSet: RangeReplaceableCollection { public func replaceSubrange<C>(_ subrange: Swift.Range<Int>, with newElements: C) where C : Collection, ChartDataEntry == C.Element { }")
    
end

def find_and_replace(dir, findstr, replacestr)
  if ENV['Modify']
    puts "find_and_replace"
    Dir[dir].each do |name|
        text = File.read(name)
        replace = text.gsub(findstr,replacestr)
        if text != replace
            puts "Fix: " + name
            File.open(name, "w") { |file| file.puts replace }
            STDOUT.flush
        end
    end
    Dir[dir + '*/'].each(&method(:find_and_replace))
  else
    puts "no replace"
  end
  
end

3、使用Modify=1 pod install,后续再继续用 pod install

4、这样就可以把 确实的代码注入进去了。