从SDK

时间:2016-01-27 09:05:03

标签: ios objective-c sdk appdelegate method-swizzling

大家好。

我正在尝试开发一个SDK,它会在应用程序进入后台时注册事件[如后台获取或重要位置更改]。 因此我需要在appDelegate方法中编写代码

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

- (void)applicationDidEnterBackground:(UIApplication *)application

问题是,如何在不损坏托管应用程序app委托的情况下执行此操作。

我尝试过分类,但为了做到这一点,我需要知道appDelegate

我读了一些关于methods swizzling但我无法弄清楚如何更改appdelegate方法而不是将其运行。

如果有人可以提供示例代码或链接,以帮助清除问题,将非常感谢。

感谢。

2 个答案:

答案 0 :(得分:3)

您可以使用以下两种通知:

UIApplicationDidFinishLaunchingNotification
UIApplicationDidEnterBackgroundNotification

您可以在此处详细了解它们:https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplication_Class/#//apple_ref/c/data/UIApplicationDidFinishLaunchingNotification

答案 1 :(得分:0)

这两种方法都会发送本地通知:UIApplicationDidFinishLaunchingNotificationUIApplicationWillEnterForegroundNotification

很明显,它对didFinishLaunchingWithOptions:没有多大帮助(因为我不认为您的SDK会在应用程序完成启动之前启动),但它对后台/前景和辞职很有用/活跃部分。