如何在Pod项目ViewController中导入AppDelegate.h文件?

时间:2016-02-11 05:03:20

标签: ios objective-c iphone xcode7 cocoapods

我是POD项目的新手。 我想更新pod项目viewControllers,因为我需要访问Pod Project中的AppDelegate类。

我尝试更新Pod配置文件以访问AppDelegate但无法取得成功。

1 个答案:

答案 0 :(得分:2)

您真的不想在您的应用和广告连播之间创建循环依赖关系。建议的方法是在pod中定义协议并使AppDelegate实现该协议。

@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];

上述结构之类的东西应该可行,但我建议你重新考虑这个架构。 pod是应用程序的依赖项,不应该对应用程序有任何了解。该应用程序应该告诉pod它需要知道的一切。