iOS开发之旅--ReactiveCocoa使用小结2

iOS开发之旅–ReactiveCocoa使用小结2

      Go on!

      先祝福孩子儿童节快乐!


未看第一篇博客的可以先看第一篇:ReactiveCocoa使用小结,欢迎交流

今天简单介绍RAC中rac_signalForSelector 、 rac_signalForControlEvents 的使用,

首先是delegate

delegate分为库定义和自己定义的。本文中主要讲解库定义的delegate的使用细节及技巧。

本文用常用的tableview做的例子,源码:TP

使用细节:只能用于无返回值的函数,具有返回值的函数不适合此方法,如果你真的想把所有的delegate使用block写法,那么推荐你使用这个三方库:Aspects,
我们绑定信号应该在设置delegate的前面,具体可以看代码,可供测试。

我们可以通过这种写法重新封装一个常用控件的分类来使用,

其次是按钮点击事件的绑定监听

已有按钮点击事件可以通过下面的方法实现

[[self.btn rac_signalForControlEvents:UIControlEventTouchUpInside] subscribeNext:^(id x) {
        [[ShowPromptMessage sharedManager] showPromptMessage:@"按钮点击事件委托交给rac处理"];
    }];

自定义按钮的点击事件,我们平时的方法是:

[myButton addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];

//现在可以这样
[[myButton rac_signalForControlEvents:UIControlEventTouchUpInside] subscribeNext:^(id x) {
        [[ShowPromptMessage sharedManager] showPromptMessage:@"测试自己创建按钮点击事件"];
    }];

可以方便很多,点击事件的代码不需要去另一个地方找,直接就可以看到。

然后用来监听方法有没有执行的一个很好的办法

具体常用如下:

- (void)viewDidLoad {

    [[self rac_signalForSelector:@selector(goodBoy)] subscribeNext:^(id x) {
        NSLog(@"****goodBoy*****");
    }];

    //这个都需要放在监听后面,不然你都执行完了,才设置监听岂不是浪费了
最后是对通知的重写

话不多说,直接看代码。

//我们平时的代码,先添加通知,然后下面需要再实现一个方法,这里只需要这样。
//��监听通知
    [[[NSNotificationCenter defaultCenter] rac_addObserverForName:@"xiaoshiceshi" object:nil] subscribeNext:^(id x) {
         [[ShowPromptMessage sharedManager] showPromptMessage:@"上面点击事件给我发来通知"];

    }];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值