MUKSignal
MUKSignal
提供了一种向各种订阅者发送信号的方式。
主要特点
MUKSignal
是一个简单的类,公开三个主要功能。
分发
您可以使用负载分发信号。
MUKSignal<NSString *> *signal = [[MUKSignal alloc] init];
...
[signal dispatch:@"Hello"];
订阅
您可以向信号添加订阅者。
id const token = [signal subscribe:^(NSString *payload) {
// Called after dispatch
}];
挂起
订阅可以暂时挂起。
[signal suspend:token];
// Dispatches are not delivered
[signal resume:token];
// If a dispatch has occurred during suspension is delivered now (if more than one they are coalesced into one)
特定信号
库包括在特定条件下发送的特定信号。
通知
当通知被触发时,将发送通知信号。
MUKNotificationSignal *signal = [[MUKNotificationSignal alloc] initWithName:name:UIApplicationWillEnterForegroundNotification object:nil];
[signal subscribe:^(NSNotification *notification) {
// App will enter foreground
}];
UIControl
目标操作
控制操作信号是在触发控件的操作时发送的。
MUKControlActionSignal<UIButton *> *signal = [[MUKControlActionSignal alloc] initWithControl:self.button forEvents:UIControlEventTouchUpInside];
[signal subscribe:^(UIEvent *event) {
// Called when button has been pressed
}];
观察
观察是将信号与特定的订阅相关联的概念。当有大量信号需要观察以避免使您的视图控制器过于庞杂时,这一点特别有用。
MUKSignal *signal = ...;
MUKSignalObservation *observation = [MUKSignalObservation observationWithSignal:signal token:[signal subscribe:^(id payload)
{
// Waiting for a dispatch
}]];
需求
- iOS 7 SDK。
- 最小部署目标:iOS 7。
安装
MUKSignal
可以通过 CocoaPods 获取。要安装它,只需将以下行添加到您的 Podfile 中。
pod "MUKSignal"
作者
Marco Muccinelli, [email protected]
许可证
MUKSignal
在 MIT 许可证下可用。更多信息请参阅 LICENSE 文件。