Reactive Cocoa:只订阅新值
Reactive Cocoa: subscribe only to new values
我是 Reactive 的新手 Cocoa。我想要实现的是每次 属性 值更改时都会收到通知。但是,我不想在 属性 设置为相同值时收到通知。
这是一些代码:
self.testProperty = 0;
[[RACObserve(self, self.testProperty) skip:1] subscribeNext:^(id x) {
NSLog(@"Did Change: %@", x);
}];
self.testProperty = 1;
self.testProperty = 1;
self.testProperty = 1;
self.testProperty = 1;
self.testProperty = 1;
这就是我在控制台输出中得到的
> Did Change: 1
> Did Change: 1
> Did Change: 1
> Did Change: 1
> Did Change: 1
我预计 "Did change" 只会打印一次,而不是五次。有没有办法只订阅新值?
有一个方法,distinctUntilChanged:
[[[RACObserve(self, self.testProperty)
skip:1]
distinctUntilChanged]
subscribeNext:^(id x) {
NSLog(@"Did Change: %@", x);
}];
我是 Reactive 的新手 Cocoa。我想要实现的是每次 属性 值更改时都会收到通知。但是,我不想在 属性 设置为相同值时收到通知。 这是一些代码:
self.testProperty = 0;
[[RACObserve(self, self.testProperty) skip:1] subscribeNext:^(id x) {
NSLog(@"Did Change: %@", x);
}];
self.testProperty = 1;
self.testProperty = 1;
self.testProperty = 1;
self.testProperty = 1;
self.testProperty = 1;
这就是我在控制台输出中得到的
> Did Change: 1
> Did Change: 1
> Did Change: 1
> Did Change: 1
> Did Change: 1
我预计 "Did change" 只会打印一次,而不是五次。有没有办法只订阅新值?
有一个方法,distinctUntilChanged:
[[[RACObserve(self, self.testProperty)
skip:1]
distinctUntilChanged]
subscribeNext:^(id x) {
NSLog(@"Did Change: %@", x);
}];