这两行代码之间的区别在于第二行与KVO兼容而第一行不是吗?
[person setValue:tempPerson.name forKey:@"name"];
person.name = tempPerson.name;
我问的原因是因为我需要在500多个对象上更新60个属性,我不希望KVO通知超过少数几个属性。
我正在为我的UITableView使用NSFecthedResultsController,我不想在单元格上触发过多的setNeedDisplay。
答案 0 :(得分:3)
就关键值观察而言,两条线之间没有区别。两者都默认触发KVO通知。但是,您可以覆盖此行为。来自Apples的KVO编程指南:
您可以通过实现类方法
automaticallyNotifiesObserversForKey:
来控制子类属性的自动观察器通知。子类可以测试作为参数传递的密钥,如果应该启用自动通知则返回YES,如果应该禁用则返回NO。