У меня есть пользовательский 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, и обновлять только метку имени. Спасибо