我有一个带有viewModel属性的UITableViewCell。随着tableview单元被重用,我希望它能够绑定到最新 viewModel的属性,如下所示:
RAC(self.titleLabel, text) =
[[RACObserve(self, viewModel) map:^id(MyViewModel *viewModel) {
return RACObserve(viewModel, title);
}]
switchToLatest];
我所看到的问题是细胞永远不会被释放。 当单元格应该解除分配时,有没有办法处理信号?
答案 0 :(得分:3)
我的错! RACObserve()
会保留自我 - 我错过了@strongify(self)
。
解决了:
@weakify(self);
RAC(self.titleLabel, text) =
[[RACObserve(self, viewModel) map:^id(MyViewModel *viewModel) {
@strongify(self);
return RACObserve(viewModel, title);
}]
switchToLatest];
答案 1 :(得分:3)
让我补充说,有一种更简洁的写作方式。假设您正在为您的单元格使用故事板或xib:
- (void)awakeFromNib {
[super awakeFromNib];
RAC(self, textLabel.text) = RACObserve(self, viewModel.title);
}