Objective C 项目中的 ScrollableGraphicView Swift 库出现问题
Issue with ScrollableGraphicView Swift Library in Objective C project
大家好,我的应用程序中的图表我使用的是 MIT ScrollableGraphView 库,完全用 Swift 语言编写.
这是 Ghitub 的 link https://github.com/philackm/ScrollableGraphView
为了在我的 ObjectiveC 项目中使用这个库,我将其导入到我的视图控制器文件中:
#import "TargetName-Swift.h"
然后要使用我们需要包含的库 <ScrollableGraphViewDataSource>
此时文档说要以这种方式分配 class
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];
}
我的问题是xCodereturns这个错误给我
没有可见的@interface for 'ScrollableGraphView' 声明选择器 'initWithFrame: dataSource:'
我想我已经按照所有必要的说明使用这个库,但我不明白为什么我找不到 class 分配数据源
在ScrollableGraphView.swift文件中,class分配还包括数据源
public init (frame: CGRect, dataSource: ScrollableGraphViewDataSource) {
self.dataSource = dataSource
super.init (frame: frame)
}
所以我不明白为什么我不能在objective C中分配class..
我哪里做错了?有人用过这个图书馆吗?你知道如何解决这个问题吗?
在我的例子中,swift 源文件中的 class 分配似乎没有扩展名 @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 他的建议在这种情况下是正确的!
大家好,我的应用程序中的图表我使用的是 MIT ScrollableGraphView 库,完全用 Swift 语言编写.
这是 Ghitub 的 link https://github.com/philackm/ScrollableGraphView
为了在我的 ObjectiveC 项目中使用这个库,我将其导入到我的视图控制器文件中:
#import "TargetName-Swift.h"
然后要使用我们需要包含的库 <ScrollableGraphViewDataSource>
此时文档说要以这种方式分配 class
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];
}
我的问题是xCodereturns这个错误给我
没有可见的@interface for 'ScrollableGraphView' 声明选择器 'initWithFrame: dataSource:'
我想我已经按照所有必要的说明使用这个库,但我不明白为什么我找不到 class 分配数据源
在ScrollableGraphView.swift文件中,class分配还包括数据源
public init (frame: CGRect, dataSource: ScrollableGraphViewDataSource) {
self.dataSource = dataSource
super.init (frame: frame)
}
所以我不明白为什么我不能在objective C中分配class..
我哪里做错了?有人用过这个图书馆吗?你知道如何解决这个问题吗?
在我的例子中,swift 源文件中的 class 分配似乎没有扩展名 @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 他的建议在这种情况下是正确的!