我使用此代码通过我的可变数组订阅事件:
[RACObserve(self, marray) subscribeNext:^....
我是 RAC 的新手,我不明白为什么,例如,如果我使用:
NSMutableArray *keyValueCodingArray = [self mutableArrayValueForKey:@"marray"];
[keyValueCodingArray addObject:@"string"];
一切正常,如果我向我的 keyValueCodingArray
添加一些东西,这是我的 marray
它会对事件使用react,如果我从 keyValueCodingArray 中删除一些对象它也会使用react。
但如果直接使用实例,RACObserve block 将无法工作。我的意思是它似乎没有观察到数组的任何变化:
[self.marray removeObjectAtIndex:0];
有什么区别?
最佳答案
您可能正在寻找以下内容:
[[keyValueCodingArray rac_signalForSelector:@selector(addObject:)] subscribeNext:^(id x) {
<#code#>
}];
和
[[keyValueCodingArray rac_signalForSelector:@selector(removeObject:)] subscribeNext:^(id x) {
<#code#>
}];
您的代码仅检查数组属性的更改,而不是对其值的调用。
关于ios - Reactivecocoa KVC 和实例对象之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28634488/