2012-11-16 4 views
0

개요 :Paul Hegarty가 NSFetchedResultsController @properties를 변경하지 않겠다고 말한 이유는 무엇입니까?

스탠포드 아이폰 OS 튜토리얼은 핵심 데이터를 사용하는 동안 테이블 뷰를 사용하는 데 도움이되는 구현 (헤더 + 구현 파일)가 포함되어 있습니다.

링크 - - http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2011-fall

파일 이름CoreDataTableViewController.zip
CoreDataTableViewController.h 다음과 같은 텍스트가 포함되어 있습니다 :

// 당신이 NSFetchedResultsController를 작성하면 수정할 수없는 기억 그것의 @propertys. 새 반입 매개 변수 (조건 자, 정렬 등)를 원하면 NEW NSFetchedResultsController를 작성하고이 클래스의 fetchedResultsController @property를 다시 설정하십시오.

질문

당신이 속성을 변경할 때 docs 그들이 상황을 언급, 일부 실수처럼 보이는 ...이 경우 어떤 것을 권장합니다, 또는 내가 뭔가를 그리워하기 때문에 그것은 조금 이상한 소리가 난다. 술어를 변경하고 다시 가져 오는 경우 모든 것이 작동합니다 ...

답변

0

캐시를 사용하는지 여부에 따라 다릅니다. 귀하가 링크하는 문서에서 말하는대로 :

캐시를 사용하는 경우, 가져 오기 요청, 해당 술어 또는 정렬 설명자를 변경하기 전에 deleteCacheWithName :을 호출해야합니다. cacheName을 nil로 설정하지 않으면 여러 쿼리에 동일한 반입 결과 컨트롤러를 다시 사용하면 안됩니다.

이러한 속성을 변경하는 경우이 코드는 초보자 용이므로이 예제 코드 외부에서 페치 된 결과 컨트롤러를 만드는 것이 더 간단 할 수 있습니다. 결과 컨트롤러는 캐싱에 대한 설명으로 들어가고 캐시를 지우는 등의 작업을 수행합니다.

+0

그래, 나는 그 발언을 보았다. 그럼 괜찮아 ... – DanSkeel