Come posso chiamare le funzioni iOS non pubbliche e accedere alle propietarie non pubbliche da Swift? In particolare, vorrei utilizzare una classe non pubblica nel framework QuartzCore.Come accedere alle API private iOS in Swift?
Una soluzione che mi è venuta in mente è creare un progetto Objective-C "bridging" che avvolga queste API non pubbliche in quelle pubbliche e che richiami queste funzioni Objective-C da Swift. Tuttavia, la mia soluzione è pura Swift ora e preferirei mantenerla in questo modo. Esiste un modo più preciso? (ad esempio aggiungendo qualcosa a Objective-C bridging header file)
Nota: So cosa stai pensando, le API private sono private perché non dovrebbero essere utilizzate. Conosco i rischi, sono a conoscenza di tutte le donwsides, le restrizioni sull'app store ecc. Dopo tutto quello che ho considerato attentamente e molte ricerche, purtroppo sembra ancora il modo migliore per andare in questo caso particolare.
Se si aggiunge correttamente la dichiarazione dei metodi privati per un colpo di testa colmare file, come se fossero in una categoria (chiamato, ad esempio, 'PrivateButImmaUseTheseAnyway'), funziona? –
@ TheParamagneticCroissant Non sono sicuro di aver capito cosa intendi. Non sapevo se è possibile dichiarare solo un metodo nel file di intestazione del bridging. Ho provato a dichiarare l'intera classe privata - ho ricevuto un errore di compilazione dicendo che la classe non esiste ma forse non l'ho fatto correttamente. – drasto
Voglio dire, dichiarate la classe privata insieme a una categoria, come questa: '@interface NSPrivateClass (PrivateStuff)', e aggiungete la dichiarazione dei metodi privati lì. –