美文网首页
ReactiveObjc- Category

ReactiveObjc- Category

作者: 得_道 | 来源:发表于2020-11-20 10:26 被阅读0次

UI - Category(常用汇总)

1、rac_prepareForReuseSignal: 需要复用时用
相关UI: MKAnnotationView、UICollectionReusableView、UITableViewCell、UITableViewHeaderFooterView

2、rac_buttonClickedSignal:点击事件触发信号
相关UI:UIActionSheet、UIAlertView

3、rac_command:button类、刷新类相关命令替换
相关UI:UIBarButtonItem、UIButton、UIRefreshControl

4、rac_signalForControlEvents: control event 触发
相关UI:UIControl

5、rac_gestureSignal UIGestureRecognizer 事件处理信号
相关UI:UIGestureRecognizer

6、rac_imageSelectedSignal 选择图片的信号
相关UI:UIImagePickerController

7、rac_textSignal
相关UI:UITextField、UITextView

8、可实现双向绑定的相关API

rac_channelForControlEvents: key: nilValue:
相关UI:UIControl类
rac_newDateChannelWithNilValue:
相关UI:UIDatePicker
rac_newSelectedSegmentIndexChannelWithNilValue:
相关UI:UISegmentedControl
rac_newValueChannelWithNilValue:
相关UI:UISlider、UIStepper
rac_newOnChannel
相关UI:UISwitch
rac_newTextChannel
相关UI:UITextField

Foundation - Category (常用汇总)

1、NSArray
rac_sequence 信号集合
2、NSData
rac_readContentsOfURL: options: scheduler: 比oc多出线程设置
3、NSDictionary
rac_sequence 不解释
rac_keySequence key 集合
rac_valueSequence value 集合
4、NSEnumerator
rac_sequence 不解释
5、NSFileHandle
rac_readInBackground 见名知意
6、NSIndexSet
rac_sequence 不解释
7、NSInvocation
rac_setArgument: atIndex: 设置参数
rac_argumentAtIndex 取某个参数
rac_returnValue 所关联方法的返回值
8、NSNotificationCenter
rac_addObserverForName: object:注册通知
9、NSObject
rac_willDeallocSignal 对象销毁时发动的信号
rac_description debug用
rac_observeKeyPath: options: observer: block:监听某个事件
rac_liftSelector: withSignals: 全部信号都next在执行
rac_signalForSelector: 代替某个方法
rac_signalForSelector:(SEL)selector fromProtocol:代替代理
9、NSOrderedSet
rac_sequence 不解释
10、NSSet
rac_sequence 不解释
11、NSString
rac_keyPathComponents 获取一个路径所有的部分
rac_keyPathByDeletingLastKeyPathComponent 删除路径最后一部分
rac_keyPathByDeletingFirstKeyPathComponent 删除路径第一部分
rac_sequence 不解释 (character)
rac_readContentsOfURL: usedEncoding: scheduler: 比之OC多线程调用
12、NSURLConnection
rac_sendAsynchronousRequest 发起异步请求
13、NSUserDefaults
rac_channelTerminalForKey 用于双向绑定,此乃一端


常用案例

监听文本框文字改变

  [_textField.rac_textSignal subscribeNext:^(id x) {

       NSLog(@"文字改变了%@",x);
   }];

代理方法

[[self rac_signalForSelector:@selector(webViewDidStartLoad:)
    fromProtocol:@protocol(UIWebViewDelegate)]
    subscribeNext:^(id x) {
        // 实现 webViewDidStartLoad: 代理方法
    }];

target-action

[[self.avatarButton rac_signalForControlEvents:UIControlEventTouchUpInside]
    subscribeNext:^(UIButton *avatarButton) {
        // avatarButton 被点击了
    }];

通知

[[[NSNotificationCenter defaultCenter]
    rac_addObserverForName:kReachabilityChangedNotification object:nil]
    subscribeNext:^(NSNotification *notification) {
        // 收到 kReachabilityChangedNotification 通知
    }];

KVO

[RACObserve(self, username) subscribeNext:^(NSString *username) {
    // 用户名发生了变化
}];

相关文章

网友评论

      本文标题:ReactiveObjc- Category

      本文链接:https://www.haomeiwen.com/subject/xvravktx.html