无法覆盖在 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];
我通过对 BEMSimpleLineGraphDelegate
和 BEMSimpleLineGraphDataSource
使用单独的 类 解决了这个问题。
我一直在用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];
我通过对 BEMSimpleLineGraphDelegate
和 BEMSimpleLineGraphDataSource
使用单独的 类 解决了这个问题。