2016-02-11 4 views
8

Sono nuovo nel progetto POD. Voglio aggiornare il progetto pod viewControllers, per questo ho bisogno di accedere alla classe AppDelegate in Progetto Pod.Come importare il file AppDelegate.h nel progetto Pod ViewController?

Ho provato ad aggiornare il file di configurazione di Pod per accedere a AppDelegate ma non riesco a ottenere il successo.

+0

Perché lo vuoi? Non è roba ideale che dovresti fare. –

+0

Invece di utilizzare le classi di progetto nel progetto pod, utilizzare le classi pod nel progetto. Crea un'istanza della classe pod e aggiorna qualsiasi cosa dalla classe 'AppDelegate'. Spiega anche di più sui tuoi requisiti Penso che ci possa essere un modo migliore e più semplice per soddisfare i tuoi requisiti. – TheTiger

+0

Grazie per la risposta, ma desidero accedere al mio oggetto array 'AppDelegate' nelle classi di progetto pod, significa che quando accediamo a qualsiasi classe pod si aggiornerà usando l'oggetto array' AppDelegate'. – Swapnil1156035

risposta

1

Realmente non si desidera creare una dipendenza circolare tra l'app e il pod. Il modo consigliato per farlo sarebbe quello di definire un protocollo nel pod e fare in modo che AppDelegate implementasse tale protocollo.

@protocol PodArrayProvider 
    - (NSArray *)arrayToAccess: 
@end 

// in AppDelegate.m 
#import <Pod/Pod.h> 

@extension AppDelegate() <PodArrayProvider> 
@end 

@implementation AppDelegate 
- (NSArray *)arrayToAccess 
{ 
    return self.realArray; 
} 
@end 

// then in your pod, you can do: 
id<PodArrayProvider> arrayProvider = (id<PodArrayProvider>)[[UIApplication sharedApplication] delegate]; 
NSAssert([arrayProvider conformsTo:@protocol(PodArrayProvider)], @"bad app delegate!"); 
NSArray *things = [arrayProvider arrayToAccess]; 

Qualcosa di simile alla struttura di cui sopra dovrebbe funzionare, ma vi invito a ripensare questa architettura. Il pod è una dipendenza dell'app e non dovrebbe sapere nulla sull'app. L'app dovrebbe comunicare al pod tutto ciò che deve sapere.