今天遇到了一个奇怪的问题,用RACOBserve绑定了变量,变量发生了变化,但信号就是不触发,研究了半个小时,终于找到问题,见下面代码(红色部分)
//视图模
@interface ContactsVM : NSObject
@property (nonatomic, strong) NSMutableArray *phoneBookAry;
@property (nonatomic, strong) NSMutableArray *contactGrouds;
- (void)getPhoneAddress;
@end
@property (nonatomic, strong) NSMutableArray *phoneBookAry;
@property (nonatomic, strong) NSMutableArray *contactGrouds;
- (void)getPhoneAddress;
@end
@implementation ContactsVM
- (void) getPhoneAddress {
......
_phoneBookAry = bookAry; // 1
// self.phoneBookAry = bookAry; // 2
}
@end
使用的时候
[RACObserve(_viewModel,
phoneBookAry) subscribeNext:^(id x) {
_phoneBookAry = _viewModel.phoneBookAry;
_contactGrouds = _viewModel.contactGrouds;
[_tableView reloadData];
}];
getPhoneAddress 确实是执行了,但是RACObserve里面的代码总是不执行,之后
1改为
2的时候就执行了,行不明白,谁弄明白了记得告诉我!
_phoneBookAry = _viewModel.phoneBookAry;
_contactGrouds = _viewModel.contactGrouds;
[_tableView reloadData];
}];