rac 数组之遍历

rac的数组遍历其实很简单。但是有个点需要注意。

以下先举个例子说明遍历的用法

 NSArray *temArr = @[@"111",@"222"];
    [temArr.rac_sequence.signal subscribeNext:^(RACTuple * _Nullable x) {
        NSLog(@"%@",[NSThread currentThread]);
        NSLog(@"---数组遍历----%@",x);
    }];

以下是日志:

<NSThread: 0x281cb4340>{number = 4, name = (null)}

2019-11-16 11:29:26.322717+0800 NewProjectToTest[4289:1922998] ---数组遍历----111

2019-11-16 11:29:26.323227+0800 NewProjectToTest[4289:1922998] <NSThread: 0x281cb4340>{number = 4, name = (null)}

2019-11-16 11:29:26.323333+0800 NewProjectToTest[4289:1922998] ---数组遍历----222

很明显能看到代码不是在主线程中执行的。这样会导致我们在实际使用过程中需要考虑代码的执行问题。

所以我们在遍历的时候可以通过deliverOn把这个任务添加到主线程中,代码如下

[[temArr.rac_sequence.signal deliverOn:[RACScheduler mainThreadScheduler]] subscribeNext:^(id  _Nullable x) {
        NSLog(@"=====%@",[NSThread currentThread]);
        NSLog(@"--3333-数组遍历----%@",x);
    }];

显示日志如下:

=====<NSThread: 0x281cde040>{number = 1, name = main}

2019-11-16 11:29:26.331387+0800 NewProjectToTest[4289:1922792] --3333-数组遍历----111

2019-11-16 11:29:26.331451+0800 NewProjectToTest[4289:1922792] =====<NSThread: 0x281cde040>{number = 1, name = main}

2019-11-16 11:29:26.331489+0800 NewProjectToTest[4289:1922792] --3333-数组遍历----222

差不多就这样吧。。很简单的使用。。

原文地址:https://www.cnblogs.com/110-913-1025/p/11871235.html