Sto lavorando su estensione iOS 8. Ho letto molti manuali e tutti loro mostrano semplicemente come aggiungere un'estensione alla tua app, e sembra che sia abbastanza.Problemi di estensioni di iOS 8. Importazione di un file di progetto in controller di vista estensione
ma qui ci sono molte insidie:
Dopo aver aggiunto l'estensione sarà necessario importare alcune delle vostre classi per visualizzare regolatore che sono stati creati quando è stato aggiunto nuovo target di estensione. Il grande uso qui che avrai bisogno di aggiungerli tutti e se hai un progetto enorme non è un compito semplice. La soluzione può essere selezionata come destinazione dell'estensione quindi in Fasi di compilazione -> Compila origini premere il pulsante più e aggiungere tutti i file .m alla destinazione utilizzando la combinazione di tasti CMD + A.
Dopo aver aggiunto tutti i file che si può vedere che alcuni dei lavori metodo di solito, e si può vedere questo errore:
'sharedApplication' is unavailable: not available on iOS (App Extension)
modo la soluzione può essere una macro che controllanoifndef Extension
allora possiamo invocaresharedApplication
codice.#import <Foundation/Foundation.h>
vs#import <UIKit/UIKit.h>
. Quindi non ho capito con questo problema, ma quando ho sostituitoFoundation
conUIKit
funziona per me e tutti i problemi correlati vanno via.- CocoaPods. Tutti noi utilizziamo CocoaPods, quindi se la tua estensione deve utilizzare parte del codice del progetto e tale codice utilizza la libreria CocoaPods, devi aggiungere
link_with 'ProjectTarged', 'ExtensionTarget'
al file Pod e rendere nuovamentepod install
per legare le tue librerie con la nuova destinazione dell'estensione.
Quindi questo è uno dei punti principali che ho affrontato. Forse qualcuno può suggerire come risolvere il problema, come ho detto ho appena importato un file necessario per il controller di visualizzazione estensione. Il file importato contiene alcune librerie come AFNetworking
, RestKit
e altre classi nidificate dal progetto principale. Ho bisogno di questa classe per invocare alcuni metodi con il passaggio dei dati dall'estensione al mio server back-end. Quindi un solo file ma molti problemi.
Qual è il problema che stai cercando di risolvere? Elenchiamo un sacco di insidie, ma sembra che tu sappia già cosa fare su di loro. –
@TomHarrington Mi aspettavo che ci fosse qualche fornitore tra app ed estensione e non è necessario importare le intestazioni, così come se tu abbia una classe nel target dell'app che può tracciare alcuni eventi dall'estensione e ad esempio eseguire qualche azione e invece di importare e aggiungere tutti i file basta usare l'adattatore smth tra due obiettivi –