добавление KVO в UITableViewCell

У меня есть пользовательский UITableViewCell, который отображает различные атрибуты объекта Person (при поддержке Core Data) ... некоторые ярлыки, изображения и т. Д. В настоящее время я заставляю перезагружать весь tableview всякий раз, когда изменяется какое-либо свойство, и это явно неэффективно . Я знаю, что с помощью KVO я должен иметь возможность добавить слушателя к метке в ячейке, которая может отслеживать изменения в свойствах человека. Но я не знаю, как это реализовать, и не могу найти никаких примеров.

Вот что я обычно делаю в cellForRowAtIndexPath моего UITableView:

    - (UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) indexPath
    {
        static NSString *simple = @"CustomCellId";

        CustomCell *cell = (CustomCell *) [tableView dequeueReusableCellWithIdentifier:simple];

        if (cell == nil)
        {
            NSArray *nib =  [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil];

            for (id findCell in nib )
            {
                if ( [findCell isKindOfClass: [CustomCell class]])
                {
                    cell = findCell;
                }    
            }
         }
         Person *managedObject = [self.someArray objectAtIndex: indexPath.row];
         cell.namelabel.text =  managedObject.displayName;
         return cell;
}

Ячейка подключена к IB. Я хотел бы определять, когда изменяется displayName, и обновлять только метку имени. Спасибо

12
задан Z S 5 October 2011 в 03:11
поделиться