【发布时间】:2012-01-27 20:45:52
【问题描述】:
我有一个 data 类 EquationData 的对象。我还有一个自定义 tableviewcell (balanceCell),它有一个自定义文本字段 (balanceCell.leftView) 作为子视图。文本字段有一个 NSMutableString equationOrder 类型的属性,随着用户输入文本而改变。随着更多对象添加到equationOrder,我希望data 接收通知。
我在视图控制器中有什么
- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
equationCell = (EquationCell *) [tableView dequeueReusableCellWithIdentifier:@"equationCell"];
if (equationCell == nil) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"EquationCell" owner:self options:nil];
equationCell = (EquationCell*) [nib objectAtIndex:0];
[equationCell.leftView addObserver:data forKeyPath:@"equationOrder" options:NSKeyValueObservingOptionNew context:nil];
}
return equationCell;
}
我在数据的实现中拥有什么
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
if ([keyPath isEqualToString:@"equationOrder"])
NSLog(@"called");
}
但是,屏幕上不显示“被叫”。我尝试使用其他变量来观察data,并且我尝试将equationOrder 从一个属性更改为一个变量。
当equationOrder 更改时,如何让data 接收通知? (我已确保对象实际上已添加到 equationOrder)
【问题讨论】:
标签: objective-c ios key-value-observing