2012-01-27 76 views
0

我有一個類EquationData的對象data。我也有一個自定義的tableviewcell(balanceCell),它有一個自定義文本字段(balanceCell.leftView)作爲子視圖。文本字段的屬性類型爲NSMutableString equationOrder,它隨用戶在文本中鍵入而更改。我想data接收通知,因爲更多的對象被添加到equationOrder觀察員未在KVO中接收keyPath的消息

我在視圖控制器

- (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從屬性更改爲變量。

我如何獲得data以接收通知,因爲equationOrder已更改? (我確定對象實際上被添加到了方程式)

回答

1

確保在更改equationOrder時使用array(或set?)訪問器。有關詳細信息,請參見this question