наблюдатель не получает сообщения для keyPath в KVO - PullRequest
0 голосов
/ 28 января 2012

У меня есть объект data класса EquationData.У меня также есть пользовательская ячейка tableview (balanceCell), которая имеет в качестве подпредставления настраиваемое текстовое поле (balanceCell.leftView).Текстовое поле имеет свойство типа NSMutableString equationOrder, которое изменяется по мере того, как пользователь вводит текст.Я хочу, чтобы data получал уведомления, когда к equationOrder.

добавляется больше объектов * Что у меня есть в контроллере представления

- (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 Ответ

1 голос
/ 28 января 2012

Обязательно используйте массивы (или установите?) Методы доступа при изменении equationOrder. См. этот вопрос для деталей.

...