1

我想知道如何使用该ReactiveCocoa库来RAC-ifyUIApplicationDelegate生命周期事件。

由于最重要的是- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions,这对我来说似乎是一个合乎逻辑的起点。

如果我理解正确,基本思想是创建一个RACSignal封装事件(应用程序使用这些选项完成启动),通过管道串行发送或并行发送到多个“应用程序启动处理程序”,然后合并所有它们的输出——如果是串行的,那么只有在每个返回时才继续YES,如果是并行的,if (handler1 == YES && handler2 == YES ...)——然后return是实际的组合响应UIApplicationDelegate

但是,我对如何实现这一点的确切细节很模糊——这从我的提问中可能很明显。

任何示例,无论是真实代码还是伪代码,都将不胜感激。它对我(可能还有其他人)有双重目的:1)所述的一个,以及 2)提供一个如何RAC-ify 非 UI 驱动事件的示例(嗯,这甚至​​不完全正确,但我认为你明白我的意思)。

4

1 回答 1

0

我发现我可以signalForSelector小心地包装委托方法。

在设置委托之前,我从这个答案中学到了使用方法。rac_signalForSelector

因为UIApplicationDelegate它可能有点复杂,因为我们通常不UIApplication delegate直接设置,而是在main.mObjective-C 或main.swift Swift 的情况下在文件中指定一个类。

但是,我相信如果在AppDelegate类本身中完成设置,并在main文件中分配,这将满足上述要求。

另一种选择是将方法添加到新的 Objective-C 类别的接口或UIResponder子类的 Swift 扩展。

一个例子可以在这里找到。

于 2015-08-15T20:07:48.217 回答