0

현재 표시된 데이터를 가져 오기 위해 NSFetchedResultController를 사용하고 있습니다. 그러나 두 가지 질문이 있습니다.NSFetchedResultController 질문

1) fetchSizeBatch 속성을 2로 설정하면 내 앱이 항상 중단됩니다. fetchSizeBatch는 실제로 무엇을 의미합니까? 나는 그것을 2로 설정하고 싶지 않다. 나는 그저 놀아서 그 버그를 알아 차렸다.

2) 내 응용 프로그램은 현재 UITableView를 스크롤하는 동안 약 25MB의 메모리를 사용합니다. NSFetchedResultController 그것을 일으키는 것으로 가정합니다. 25MB가 여전히 정상입니까? 아니면이 컨트롤러는 일종의 장치입니까?

답변

0

2는 코어 데이터 배치 크기가 매우 낮은 숫자입니다. According to the documentation은 아마도 내가하는 것보다 훨씬 잘 설명 할 것입니다. 배치 크기를 설정한다는 것은 데이터가 일괄 적으로 처리된다는 것을 의미합니다. 즉, Core Data는 정렬 된 결과를 데이터베이스에 쿼리하지만 일괄 처리 크기로 지정된 양만 관리 대상으로 가져옵니다. 이것의 구현은 - 그리고 이것은 큰 부분입니다 - NSArray의 프록시 서브 클래스로서 인덱스, 열거 형, 또는 무엇이든간에 액세스 할 때마다 각 일괄 처리에서 항목을 페이징합니다. 귀하의 경우, 이것은 Core Data가 두 개체마다 데이터베이스로 돌아가는 것을 의미합니다. UITableView와 대화하는 NSFetchedResultsController의 경우이 문제가 얼마나 많은지 알 수 있습니다.

그렇지 않으면 25MB는 환상적이지 않지만 앱이 훨씬 더 악화되는 것을 보았습니다. 나는 네가 잘했다고 말할거야.

+0

글쎄,이 25MBs를 NSFetchedResultController를 사용하여 적게 만드는 방법이 있습니까? 설명 주셔서 감사합니다! – lbrndnr