/ / Problem mit ScrollableGraphicView Swift Library im Objective C-Projekt - ios, swift, datasource

Problem mit ScrollableGraphicView Swift Library im Objective C-Projekt - ios, swift, datasource

Hallo allerseits, für mein Diagramm in meiner App verwende ich das MIT ScrollableGraphView Bibliothek vollständig in geschrieben Schnell Sprache.

Dies ist der Link von Ghitub https://github.com/philackm/ScrollableGraphView

Um diese Bibliothek in meinem Ziel c Projekt habe ich folgendes in meine View-Controller-Datei importiert:

#import "TargetName-Swift.h"

Um dann mit der Bibliothek arbeiten zu können, müssen wir sie einbeziehen <ScrollableGraphViewDataSource>

An dieser Stelle wird in der Dokumentation angegeben, dass die Klasse auf diese Weise zugeordnet werden soll

ScrollableGraphView * graphView = [[ScrollableGraphView alloc] initWithFrame: self.view.frame dataSource: self];

Das ist mein kompletter 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];
}

Mein Problem ist, dass xCode diesen Fehler an mich zurückgibt

Kein sichtbares @Interface für "ScrollableGraphView" deklariert den Selektor "initWithFrame: dataSource:"

Ich glaube, ich habe alle erforderlichen Anweisungen befolgt, um diese Bibliothek zu verwenden, aber ich verstehe nicht, warum ich die Klassenzuordnung mit der Datenquelle nicht finden kann

In der Datei ScrollableGraphView.swift enthält die Klassenzuordnung auch die Datenquelle

public init (frame: CGRect, dataSource: ScrollableGraphViewDataSource) {
self.dataSource = dataSource
super.init (frame: frame)
}

deshalb verstehe ich nicht warum ich die klasse nicht in ziel c zuordnen kann ..

Wo mache ich falsch Hat jemals jemand diese Bibliothek benutzt? Wissen Sie, wie Sie das Problem lösen können?

Antworten:

0 für die Antwort № 1

In meinem Fall hatte die Klassenzuordnung in der Swift-Quelldatei anscheinend nicht die Erweiterung @objc

Sobald ich dies vor der Initialisierung hinzufügte, funktionierte alles perfekt für mich ...

Dies war die Änderung:

Alte Quelle

public init(frame: CGRect, dataSource: ScrollableGraphViewDataSource) {
self.dataSource = dataSource
super.init(frame: frame)
}

Quelle mit dem Zusatz von @ objc

@objc public init(frame: CGRect, dataSource: ScrollableGraphViewDataSource) {
self.dataSource = dataSource
super.init(frame: frame)
}

Jetzt funktioniert alles ... Ich danke auch OOPer für seinen Vorschlag, dass es in diesem Fall richtig war!