0

나는 이 NSFetchedResultsController에 의해 뒷받침되는 UICollectionView을가집니다.controllerDidChangeContent 뒤에 숨겨진 UICollectionView 셀

내용이 변경되면 셀이 가끔 숨겨집니다. 그것들은 컬렉션 뷰의 서브 뷰로 유지되지만 isHidden == true입니다. 내 코드 중 어느 것도 명시 적으로 셀을 숨기지 않고 isHidden의 속성 관찰자는 결코 트립되지 않습니다.

힌트 : 우리의 코드가 cellForItem... 또는 willDisplayCell

답변

0

문제는 우리가 요청되는 셀을 구성하려고 줄 시간이 있었다이다, 실패에 핵심 데이터를 수정할 수있는 구제 케이스가 않습니다, 셀의 폴백 버전을 반환하기 전에 CoreData를 수정하십시오.

cellForItem 또는 willDisplayCell이 주 스레드에서 실행 중이며 performWithBlockAndWait을 사용하여 CoreData를 수정했습니다.

컬렉션보기에서 여전히 셀을 업데이트하는 동안 주 스레드에서 컬렉션보기의 dataSource에 변경이 발생했습니다.

간단한 수정은 performWithBlockAndWait 대신 performWithBlock을 사용하는 것이 었습니다. 이제 콜렉션 뷰는 데이터 모델이 변경되기 전에 자체 업데이트를 완료 할 수있는 기회를 갖습니다.

더 나은 해결 방법은 cellForItem 또는 willDisplayCell에 도달 할 때까지 이러한 오류를 방지하는 것입니다.