Wie kann ich nicht-öffentliche iOS-Funktionen aufrufen und nicht öffentliche Eigenschaften von Swift aufrufen? Insbesondere möchte ich eine nicht öffentliche Klasse im QuartzCore-Framework verwenden. Eine Lösung, die mir in den Sinn kam, war das Erstellen eines "Bridging" Objective-C-Projekts, das diese nicht-öffentlichen APIs in öffentliche APIs einbinden und dann Objective-C-Funktionen von Swift nennen würde. Allerdings ist meine Lösung jetzt pure Swift und ich würde es lieber so behalten. Gibt es einen stabileren Weg? (zum Beispiel etwas zu Objective-C bridging header file hinzufügen)Zugriff auf private iOS-APIs in Swift?
Hinweis: Ich weiß, was Sie denken, private APIs sind privat, weil sie nicht verwendet werden sollten. Ich kenne die Risiken, ich bin mir der vielen Unwägbarkeiten, App-Store-Beschränkungen usw. bewusst. Nach all dem sorgfältig überlegten und vielen Nachforschungen scheint es unglücklicherweise immer noch der beste Weg zu sein, in diesem speziellen Fall zu gehen.
Wenn Sie richtig die Deklaration der privaten Methoden auf einen Brückenkopf hinzufügen Datei, als ob sie in einer Kategorie wären (zB 'PrivateButImmaUseTeseAnyway'), funktioniert das? –
@TheParamagneticCroissant Ich bin mir nicht sicher, ob ich verstehe, was du meinst. Ich wusste nicht, ob es möglich ist, nur eine Methode zum Überbrücken von Header-Dateien zu deklarieren. Ich habe versucht, die ganze private Klasse zu deklarieren - ich habe einen Kompilierungsfehler, der besagt, dass die Klasse nicht existiert, aber vielleicht habe ich es nicht richtig gemacht. – drasto
Ich meine, Sie deklarieren die private Klasse zusammen mit einer Kategorie wie folgt: '@interface NSPrivateClass (PrivateStuff)', und fügen Sie dort die Deklaration der privaten Methoden hinzu. –