Wie erweitere ich eine Objective-C Klasse mit Swift in einem Framework?

8

Ich habe ein (OS X) Objective-C-Framework, zu dem ich einige Swift-Erweiterungen hinzufügen möchte, und ich verwende Xcode 7ß6, um damit zu arbeiten. Es gibt eine Klasse im Framework (nennen wir es "Sample"), die in den Dateien "Sample.h" und "Sample.m" implementiert ist. "Sample.h" enthält:

%Vor%

.. und "Sample.m" enthält:

%Vor%

Ich habe "Sample.swift" zum Framework hinzugefügt, das enthält:

%Vor%

Dies ist eindeutig eine triviale Version dessen, was ich in einem größeren Kontext machen möchte. Hier möchte ich die Swift-Datei verwenden, um "Sample" um eine "PrettyPrint" -Funktion zu erweitern.

.. Das Framework baut ohne Fehler auf, aber die Framework-Funktion "PrettyPrint" ist für eine aufrufende App nicht sichtbar. App-Code ruft in das Framework auf:

%Vor%

schlägt bei "sample.PrettyPrint ()" fehl mit: Wert vom Typ 'Sample' hat kein Mitglied 'PrettyPrint'

Warum schlägt das fehl? und Kann es funktionieren?

Zusätzliche Information: Wenn ich die Datei "Sample.swift" aus dem Framework entferne und die app, die in das Framework aufruft, platziere, wird die "Sample" -Klasse erfolgreich erweitert und "sample.PrettyPrint ()" funktioniert wie erwartet (Drucken "99").

    
Ramsay Consulting 08.09.2015, 22:14
quelle

2 Antworten

9

Haben Sie versucht, die Erweiterung und Funktion öffentlich zu machen?

%Vor%     
b1nary 09.09.2015, 07:22
quelle
0

In diesem Beispiel, wenn es eine Methode in

gibt

Beispiel.m:

%Vor%

Wie nennt man es von Sample.swift:

%Vor%     
Deep 25.11.2016 00:58
quelle

Tags und Links