我如何使用 ReactiveCocoa/RACSignal 到 "RACify" 像 didFinishLaunchingWithOptions 这样的 UIApplicationDelegate 生命周期事件?
How might I use ReactiveCocoa/RACSignal to "RACify" a UIApplicationDelegate lifecycle event like didFinishLaunchingWithOptions?
我想知道如何使用 ReactiveCocoa
库来 RAC
-ify UIApplicationDelegate
生命周期事件。
因为最重要的是 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
,对我来说这似乎是一个合乎逻辑的起点。
如果我理解正确的话,基本的想法是创建一个 RACSignal
来封装事件(应用程序使用这些选项完成启动),通过管道串行发送或并行发送到多个"application start handlers" 然后合并它们的所有输出 - 如果是串行的,那么只有当每个 returns YES
时才继续,如果是并行的,if (handler1 == YES && handler2 == YES ...)
- 然后 return
合并实际 UIApplicationDelegate
.
中的响应
但是,我不清楚如何实现这一点的确切细节 - 这可能从我的提问中可以明显看出。
任何示例,无论是真实代码还是伪代码,都将不胜感激。对我(可能还有其他人)来说,它有双重目的:1) 所述的目的,以及 2) 提供一个示例,说明如何 RAC
-ify 一个非 UI 驱动的事件(好吧,这甚至不完全正确,但我想你明白我的意思了)。
我发现我可以使用 signalForSelector
仔细包装委托方法。
我从 this answer 那里学到了在 设置委托之前使用 rac_signalForSelector
。
对于UIApplicationDelegate
,它可能会更复杂一些,因为我们通常不会直接设置UIApplication
delegate
,而是在[=15]中指定一个class =] 文件在 Objective-C 或 main.swift
in the case of Swift.
的情况下
不过,我相信如果在 AppDelegate
class 本身中完成设置,并在 main
文件中分配,这将满足上述要求。
另一种选择是将方法添加到新 Objective-C 类别的接口或 Swift 扩展 UIResponder
subclass.
我想知道如何使用 ReactiveCocoa
库来 RAC
-ify UIApplicationDelegate
生命周期事件。
因为最重要的是 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
,对我来说这似乎是一个合乎逻辑的起点。
如果我理解正确的话,基本的想法是创建一个 RACSignal
来封装事件(应用程序使用这些选项完成启动),通过管道串行发送或并行发送到多个"application start handlers" 然后合并它们的所有输出 - 如果是串行的,那么只有当每个 returns YES
时才继续,如果是并行的,if (handler1 == YES && handler2 == YES ...)
- 然后 return
合并实际 UIApplicationDelegate
.
但是,我不清楚如何实现这一点的确切细节 - 这可能从我的提问中可以明显看出。
任何示例,无论是真实代码还是伪代码,都将不胜感激。对我(可能还有其他人)来说,它有双重目的:1) 所述的目的,以及 2) 提供一个示例,说明如何 RAC
-ify 一个非 UI 驱动的事件(好吧,这甚至不完全正确,但我想你明白我的意思了)。
我发现我可以使用 signalForSelector
仔细包装委托方法。
我从 this answer 那里学到了在 设置委托之前使用 rac_signalForSelector
。
对于UIApplicationDelegate
,它可能会更复杂一些,因为我们通常不会直接设置UIApplication
delegate
,而是在[=15]中指定一个class =] 文件在 Objective-C 或 main.swift
in the case of Swift.
不过,我相信如果在 AppDelegate
class 本身中完成设置,并在 main
文件中分配,这将满足上述要求。
另一种选择是将方法添加到新 Objective-C 类别的接口或 Swift 扩展 UIResponder
subclass.