Cordova iOS:在AppDelegate.m中添加方法调用

时间:2016-06-23 07:25:08

标签: ios objective-c iphone cordova appdelegate

我正在为iOS构建一个带有cordova / ionic的应用程序 出于多种原因,我们必须将代码放在AppDelegate.m的生成的application()中。

我已经找到了一些类似的问题,但还没有答案。 https://stackoverflow.com/questions/36792158/cordova-phonegap-ios-modify-generated-appdelegate

有一种方法可以正确地进行一些重载或扩展吗? 简单的答案是“我可以编辑AppDelegate.m”,但由于它是项目中生成的文件,我无法做到。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

也许您可以使用运行时在AppDelegate.m中添加新方法

for example 

@interface testViewController (){
    AppDelegate *m_appDelegate;
}

@implementation testViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    m_appDelegate = [AppDelegate new];

    // add new method in AppDelegate.m
    [self addMethod];

    // call new method in AppDelegate.m
    [m_appDelegate performSelector:@selector(join)];


}

- (void)addMethod{

        BOOL addSuccess = class_addMethod([AppDelegate class], @selector(join), (IMP)happyNewYear, "v@:");

    }

    void happyNewYear(id self,SEL _cmd){
        NSLog(@"new method");

    }

    -(void)join{
        NSLog(@"in the join %s",__func__);
    }
希望它有所帮助。