我正在創建簡單的聯繫人應用程序,試圖學習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
如果陣列本身發生變化時纔會激活,而不是數組的元素。