我正在创建简单的联系人应用程序,试图学习ReactiveCocoa和MVVM。 我将cell的ViewModel数组存储在我的tableView的ViewModel中。当用户进入tableView的编辑模式时,当用户更改单元格文本时,某些单元格的ViewModel的某些属性可以更改。我想观察这些变化以启用/禁用完成按钮,并相应地启用/禁用将数据保存到模型的信号。 如何在tableViews视图模型中观察这些更改?使用ReactiveCocoa观察NSArray中的对象更改
这里的代码片段我试着使用:
-(RACSignal *)executeCheckChange {
return [RACObserve(self, cellViewModels)
map:^id(NSArray *viewModels) {
for (id viewModel in viewModels) {
if([viewModel isKindOfClass:[STContactDetailsPhoneCellViewModel class]])
{
STContactDetailsPhoneCellViewModel *phoneViewModel = (STContactDetailsPhoneCellViewModel *)viewModel;
if([phoneViewModel isChanged])
return @(YES);
}
}
return @(NO);
}];
}
但这RACObserve
如果阵列本身发生变化时才会激活,而不是数组的元素。