大家好,我的应用程序中的图表我正在使用完全用 Swift 语言编写的 MIT ScrollableGraphView 库。
这是Ghitub的链接https://github.com/philackm/ScrollableGraphView
为了在我的 ObjectiveC 项目中使用这个库,我将其导入到我的 View Controller 文件中:
#import "TargetName-Swift.h"
然后,要使用该库,我们需要包含 <ScrollableGraphViewDataSource>
此时文档说以这种方式分配类
ScrollableGraphView * graphView = [[ScrollableGraphView alloc] initWithFrame: self.view.frame dataSource: self];
这是我完整的ViewController.m
#import "TargetName-Swift.h"
@interface Dashboard () <ScrollableGraphViewDataSource>
@end
@implementation Dashboard
- (void)viewDidLoad {
[super viewDidLoad];
ScrollableGraphView *graphView = [[ScrollableGraphView alloc] initWithFrame: self.view.frame dataSource: self];
[self.view addSubview: graphView];
}
我的问题是 xCode 返回此错误给我
“ScrollableGraphView”没有可见的 @interface 声明选择器“initWithFrame: dataSource:”
我想我已经遵循了使用这个库的所有必要说明,但我不明白为什么我找不到数据源的类分配
在ScrollableGraphView.swift文件中,类分配还包括数据源
public init (frame: CGRect, dataSource: ScrollableGraphViewDataSource) {
self.dataSource = dataSource
super.init (frame: frame)
}
所以我不明白为什么我不能在 Objective C 中分配类..
我哪里做错了?有人用过这个库吗?你知道如何解决这个问题吗?
最佳答案
在我的例子中,swift源文件中的类分配似乎没有扩展名@objc
一旦我在初始化之前添加了这个,一切对我来说都很完美......
这是变化:
旧来源
public init(frame: CGRect, dataSource: ScrollableGraphViewDataSource) {
self.dataSource = dataSource
super.init(frame: frame)
}
添加@objc的源
@objc public init(frame: CGRect, dataSource: ScrollableGraphViewDataSource) {
self.dataSource = dataSource
super.init(frame: frame)
}
现在一切正常......我也感谢 OOPer 他的建议,在这种情况下它是正确的!
关于ios - Objective C 项目中 ScrollableGraphicView Swift 库的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49258942/