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信號