ios - Reactivecocoa KVC 和实例对象之间的区别

标签 ios key-value-observing reactive-cocoa key-value-coding kvc

我使用此代码通过我的可变数组订阅事件:

[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/

相关文章:

ios - 核心数据:更新子上下文

iphone - KVO vs NSNotification vs 协议(protocol)/代表?

ios - 设置具有 cocoa react 性细胞的图像

objective-c - 使用 ReactiveCocoa,我应该如何处理一次向信号订阅者发送一个项目(而不是项目列表)?

ios - 将可达性与 ReactiveCocoa 集成?

objective-c - MPMoviePlayerController 错误或功能 : Setting initialPlaybackTime to t seconds hides the time-slider upto t

iphone - 在 UIScrollView 中添加项目

ios - 登录受限的 iPhone 应用程序

swift - 在 Swift 中将变量从 subview 传递到父 View

cocoa - KVO 的添加和删除观察者方法——计数还是幂等?