The easiest way I've found is to subclass UITableViewCell, and add your observations there.
@implementation MyCustomCell
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
if ([keyPath isEqualToString:@"completed"]) {
float val = [[change objectForKey:@"new"] floatValue];
// assuming that you're trying to update a label within your cell
self.progressLabel.text = [NSString stringWithFormat:@"%f %%", val];
}
}