일부 사용자는 요청 개체를 변경할 수 없다고 말합니다. 어떤 이들은 쿼리를 변경할 수 있다고 말합니다. 어떤 이들은 우리가 술어를 바꿀 수 없다고 말합니다.NSFetchedRequestController에서 쿼리를 변경할 수 있습니까?
조건부를 변경하지 않으면 어떻게 쿼리를 변경합니까?
그건 이상한 일입니다.
일부 사용자는 요청 개체를 변경할 수 없다고 말합니다. 어떤 이들은 쿼리를 변경할 수 있다고 말합니다. 어떤 이들은 우리가 술어를 바꿀 수 없다고 말합니다.NSFetchedRequestController에서 쿼리를 변경할 수 있습니까?
조건부를 변경하지 않으면 어떻게 쿼리를 변경합니까?
그건 이상한 일입니다.
이것은 SQL 쿼리가 아니며 가져옵니다. 쿼리는 SQL 관련 개념이지만 가져 오기는 모든 유형의 핵심 데이터 저장소에서 작동하는 핵심 데이터 개념입니다.
fetchRequest
NSFetchedResultsController의 값을 변경할 수 있지만 다소 복잡합니다. From the docs:
페치 요청을 수정
당신은 단순히 결과를 수정하는 패치 요청 을 변경할 수 없습니다. 당신이 가져 오기 요청을 변경하려는 경우, 당신은 해야합니다 : 당신은 캐시를 사용하는 경우
는(1), (:) deleteCacheWithName을 사용하여 삭제합니다.
일반적으로 가져 오기 요청을 변경하는 경우 캐시를 사용하면 안됩니다.
(2) 패치 요청을 변경하십시오.
(3) performFetch :를 호출하십시오.
페치 요청 수정시 문제가되는 캐시입니다.
NSFetchRequest 객체의 조건자를 변경할 수도 있지만 가져온 결과 컨트롤러와 함께 해당 페치를 사용하는 경우 위의 단계를 수행해야합니다.
캐시 된 개체가 새 페치 요청에서 반환 된 동일한 집합이 아닌 경우 문제가 발생합니다. 새 페치 요청 객체 또는 새로 페치 된 결과 컨트롤러 객체를 만드는 것이 더 간단하고 깨끗합니다.
beginUpdate
으로 테이블 뷰를 고정해야합니다. 그렇지 않으면이 모든 작업이 진행됩니다. 그렇지 않으면 테이블 뷰의 행과 섹션이 충돌을 일으키는 데이터와 동기화되지 않게됩니다.