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 他的建议在这种情况下是正确的!