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.
fonte
2017-04-02 01:24:41
Perché lo vuoi? Non è roba ideale che dovresti fare. –
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
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