美文网首页
ReactiveCocoa开发中常见用法

ReactiveCocoa开发中常见用法

作者: csp | 来源:发表于2017-06-23 21:56 被阅读10次

    7.1 代替代理:

    rac_signalForSelector:用于替代代理。

    [[self rac_signalForSelector:@selector(userDidScroll:toPhotoAtIndex:) fromProtocol:@protocol(FRPFullSizePhotoViewControllerDelegate)] subscribeNext:^(RACTuple *value) {
    @strongify(self);
    [self.collectionView scrollToItemAtIndexPath:[NSIndexPath indexPathForItem:[value.second integerValue] inSection:0] atScrollPosition:UICollectionViewScrollPositionCenteredVertically animated:NO];
    }];

    [[self rac_signalForSelector:@selector(collectionView:didSelectItemAtIndexPath:) fromProtocol:@protocol(UICollectionViewDelegate)] subscribeNext:^(RACTuple *arguments) {
        @strongify(self);
        
        NSIndexPath *indexPath = arguments.second;
        FRPFullSizePhotoViewModel *viewModel = [[FRPFullSizePhotoViewModel alloc] initWithPhotoArray:self.viewModel.model initialPhotoIndex:indexPath.item];
        
        FRPFullSizePhotoViewController *viewController = [[FRPFullSizePhotoViewController alloc] init];
        viewController.viewModel = viewModel;
        viewController.delegate = (id<FRPFullSizePhotoViewControllerDelegate>)self;
        [self.navigationController pushViewController:viewController animated:YES];
    }];
    

    2、 代替KVO :

    rac_valuesAndChangesForKeyPath:用于监听某个对象的属性改变。
    3、 监听事件:

    rac_signalForControlEvents:用于监听某个事件。
    4、 代替通知:

    rac_addObserverForName:用于监听某个通知。
    5、 监听文本框文字改变:

    rac_textSignal:只要文本框发出改变就会发出这个信号。
    6、 处理当界面有多次请求时,需要都获取到数据时,才能展示界面

    rac_liftSelector:withSignalsFromArray:Signals:当传入的Signals(信号数组),每一个signal都至少sendNext过一次,就会去触发第一个selector参数的方法。
    使用注意:几个信号,参数一的方法就几个参数,每个参数对应信号发出的数据。

    相关文章

      网友评论

          本文标题:ReactiveCocoa开发中常见用法

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