无法覆盖在 BEMSimpleLineGraph 中标记为不可用的 method_name

Cannot override method_name which has been marked unavailable in BEMSimpleLineGraph

我一直在用BEMSimpleLineGraph 对于我最初为 swift 2.3 构建的项目,现在我正在将它迁移到 swift 3,所以在将库更新到 4.1 版后,它给了我以下错误,它无法覆盖方法因为它们不可用但是在删除它说的方法后

'ViewController' does not conform to protocol 'BEMSimpleLineGraphDataSource'

我在使用同一个库时遇到了同样的问题。问题似乎是由于 OBJ-C 和 Swift 之间的桥梁将一个已弃用的函数误认为是您尝试定位的函数。我通过注释掉代码解决了它:

1) BEMSimpleLineGraph.h: 注释掉所有depricated函数声明,

后面的代码大约有80行
//----- DEPRECATED -----//

2) BEMSimpleLineGraph.m: 每次出现这一行时注释掉:

#pragma clang diagnostic ignored

例如,我删除了 7 对看起来与此类似的行:

#pragma clang diagnostic ignored "-Wdeprecated-declarations"
                dotValue = [self.delegate valueForIndex:i];

我通过对 BEMSimpleLineGraphDelegateBEMSimpleLineGraphDataSource 使用单独的 类 解决了这个问题。