關於ReactiveCocoa的RACObserve的一些研究

1.RACObserve能夠用來觀察一個NSMutableDictionary的setValue和remove嗎?atom

能夠spa

一個對象有一個propertycode

@property(nonatomic,strong)NSMutableDictionary *testDict;

 

使用RACObserve進行觀察對象

    [RACObserve(self, testDict) subscribeNext:^(id x) {

        NSLog(@"RACObserve testDict:%@ %p",x,x);

    }];

在對dict進行setValue或remove時blog

    [self.testDict setObject:value forKey:key];
    self.testDict=self.testDict;

便可.rem

2.能夠RACObserve屬性(property)的屬性(property)嗎?io

能夠table

假設有個TestObject類class

@interface TestObject : NSObject
@property(nonatomic,strong)NSString *aProperty;
@end

一個對象有一個該類對象的屬性test

@property(nonatomic,strong)TestObject *testObj;

能夠這樣使用

[RACObserve(self, testObj.aProperty) subscribeNext:^(id x) {
        NSLog(@"RACObserve testObj.aProperty %@",x);
    }];
狀況以下:
  1.testObj變化時,總會發送信號
  2.testObj爲nil時,爲aProperty賦值無效,所以不會發送信號
  3.testObj不爲nil時,aProperty變化時,會發送信號

2015-09-14 17:27:17追加
RACSignal *repeatSignal = [[RACSignal interval:1 onScheduler:[RACScheduler mainThreadScheduler]] takeWhileBlock:^BOOL(id x) {
            return shouldRepeat;
        }];

  

當shouldRepeat爲NO時,將發送completed信號
相關文章
相關標籤/搜索