从 SDK 更改 appdelegate 方法

Change appdelegate methods from SDK

大家好

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

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

并且:

- (void)applicationDidEnterBackground:(UIApplication *)application

问题是,我怎样才能在不损坏托管应用程序应用程序委托的情况下做到这一点。

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

我读了一些关于 methods swizzling 的内容,但我不知道如何更改 appdelegate 方法而不是 运行 它。

如果有人可以提供示例代码或 link 这将有助于解决问题,我们将不胜感激。

谢谢。

您可以使用这两个通知:

UIApplicationDidFinishLaunchingNotification
UIApplicationDidEnterBackgroundNotification

您可以在这里阅读更多关于它们的信息:https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplication_Class/#//apple_ref/c/data/UIApplicationDidFinishLaunchingNotification

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

很明显,它对 didFinishLaunchingWithOptions: 没有多大帮助(因为我认为您的 SDK 不会在应用程序完成启动之前启动),但它对 background/foreground 很有用和 resign/active 部分。