2013-05-13 5 views
3

NSFetchedResultsController는 추적중인 전체 관리 대상 개체에 대한 변경을 모니터링합니다. 현재 컨텍스트에서 속성이 수정 될 때마다NSFetchedResultsController - 속성의 하위 집합에만 변경 내용을 추적합니다.

– controller:didChangeObject:atIndexPath:forChangeType:newIndexPath: 

등이 호출됩니다. 이것은 변경 사항이 실제로 자주 발생하는 경우 FRC에 연결되는 UITableView의 성능에 영향을 미칩니다.

일부 속성 만 추적 할 수 있습니까? 자주 변경되는 속성이 수정 될 때마다 반드시 알림을받지 않고도 시간이 지나치게 산발적 인 변경에 대해 FRC를 활용하려면이 기능이 필요합니다.

답변

1

아니요.
미세한 입자 관찰이 필요한 경우 속성을 다른 엔티티로 분리하면됩니다.

1

데이터를 표시하는 방법과 관련이없는 기본 개체가 변경되어 NSFetchedResultsChangeUpdate 형식의이 대리자 메서드가 호출되는 것으로 가정합니다. 이 올바른지?

이전 답변에서 말한 것처럼 특정 속성을 무시하도록 FRC를 구성 할 수 없습니다.

내 첫 번째 질문은 성능 병목 현상이란 정확히 무엇일까요? 업데이트는 현재 표시되는 셀에서만 발생하므로 업데이트가 얼마나 자주 발생하는지 또는 셀이 성능 문제를 일으키기 위해 얼마나 복잡한 지 궁금합니다.

세포가 표시되는 방식에 영향을 미치지 않는 변화를 무시하기 위해서 세포를 더 똑똑하게 만들 것입니다. 나는. 변경 알림을 받고 셀을 다시 구성하면 셀 자체에서 관련 값이 실제로 변경되었는지 여부를 확인할 수 있습니다. 그렇지 않은 경우 업데이트를 무시하면됩니다.

+0

기본적으로 나는 읽은 바이트, 총 바이트 등의 정보와 함께 다운로드를 나타내는 모델 엔터티를 가지고 있습니다. 다운로드를 시작하고, 다시 시작하고, 진행률 값을 업데이트하는 등을 관리하는 관리 대상 객체 자체이며, 물론 이러한 상황이 발생할 때마다 업데이트가 트리거됩니다. 내 셀에서 각 다운로드의 진행 상태 및 현재 상태 (일시 중지, 완료, 실패 ...)를 표시하려고합니다. @Dan Shelly가 제안한 유일한 방법은 2 부분으로 엔티티를 분할하는 것입니다. 셀에 대한 알림을 통해 진행 상황을 직접 처리 할 수도 있습니다. –

+0

다운로드 상태 및 변경 사항에 대한 각각의 변경 사항에 대해 통보하지 않아도됩니다. 이 값을 셀에 표시하려면 진행률 값을 입력하십시오. 귀하의 의견에서 알 수 있듯이 FRC가 현재 진행 상태로 셀을 업데이트하기 위해 제공하는 모든 통지가 필요합니까? 내가 뭘 놓치고 있니? :) –

+0

* 이론 *, 당신은 아무것도 놓치고있다. 그게 제가 한 일입니다. 그러나 FRC를 통해 많은 업데이 트를 받고, 어떤 이유로 테이블의 부드러움을 노크. 스크롤하고 자주 업데이트하는 경우 스크롤이 정말 엉망으로 보입니다. 그리고 의사의 어딘가에도 산발적 인 업데이트를 위해 FRC를 사용해야한다고 명시되어 있습니다. 어쩌면 이런 이유 때문에 ... –

관련 문제