2

두 코드 행의 차이점은 두 번째 코드가 KVO와 호환되며 첫 번째 코드가 아닌 것입니다. 내가 500 개체 (60 개)의 속성을 업데이트 할 필요가 있기 때문에-setValue 사용 : forKey : vs "object.var = ..."

[person setValue:tempPerson.name forKey:@"name"]; 
person.name = tempPerson.name; 

내가 부탁 해요 이유는, 나는 속성 소수의 이상 KVO 알림을 원하지 않는다.

내 UITableView에 NSFecthedResultsController를 사용하고 있으며 셀에서 과도한 setNeedDisplay를 트리거하고 싶지 않습니다.

답변

3

키 - 값 관측과 관련하여 두 줄 사이에는 차이가 없습니다. 둘 다 기본적으로 KVO 알림을 트리거합니다. 이 동작을 무시할 수 있습니다. Apples의 KVO 프로그래밍 가이드 :

automaticallyNotifiesObserversForKey: 클래스 메소드를 구현하여 하위 클래스의 속성에 대한 자동 관찰자 알림을 제어 할 수 있습니다. 서브 클래스는 매개 변수로 전달 된 키를 테스트하고 자동 알림을 활성화해야하는 경우 YES를, 비활성화해야하는 경우 NO를 반환합니다.

+0

감사합니다. 그래서 다른 스타일 일 뿐이므로 두 가지 방법 중 하나를 사용하면 도움이되지 않습니까? – iOSDevil

+0

첫 번째 줄은 느리게 실행되고 읽기가 더 어렵습니다. 따라서 속성의 이름이 변수이고 컴파일 타임에 알려지지 않은 경우를 제외하고는 사용하지 않는 것이 좋습니다. –

+0

gotcha, 다시 한 번 감사드립니다. – iOSDevil

관련 문제