我的 ViewController 中有一个模型(例如@property (nonatomic, strong) Model *model;
)
有 2 个属性 ( property1
, property2
)。
我试图通过RACObserve
宏观察这些属性,然后使用combineLatest
RACSignal *sig1 = [RACObserve(self.model, property1] map // Map block
RACSignal *sig2 = [RACObserve(self.model, property2] map // Map block
NSArray *signals = @[sig1, sig2];
RAC(self, userHasChangedSomething) = [[RACSignal combineLatest:signals] or];
[RACObserve(self, userHasChangedSomething) subscribeNext:^(NSNumber *hasChangedNumber) {
BOOL hasChanged = [hasChangedNumber boolValue];
self->sendButton.enabled = hasChanged;
self->sendButton.alpha = hasChanged ? 1.f : 0.4f;
}];
你能解释一下为什么如果我使用RACObserve(self.model, property1)
它不会触发combineLatest
并且在subscribeNext
. 但如果我改为RACObserve(self, model.property)
then 效果很好。我无法理解这。你能帮帮我吗。提前致谢。