2012-01-19 6 views
0

fetchedResultsController을 사용할 때 iOS5부터 시작하여 앱이 정지되기 시작했습니다. 시뮬레이터를 종료 한 후 디버거 결과를 첨부했습니다. iOS5 코어 데이터 가져 오기가 앱을 고정시킵니다.

enter image description here

어떤 도움

는 이해할 수있을 것이다.

감사

+0

몇 개의 스레드를 사용합니까? 가져 오기를 시도 할 곳은? 코드를 붙여 넣습니다. 죽은 자물쇠가 생겼던 것 같습니다. –

+0

master 테이블 뷰와 세 개의 다른 테이블 뷰를 사용하고 있습니다. 마스터 테이블 뷰에서 목록 선택이 변경되면 performselectorinbackground 메서드를 사용하여 세 개의 tableviews를 업데이트합니다 (기본적으로 fetchedresultscontroller를 nil로 만들고 해당 메서드에서 반입을 다시 수행합니다). 앱이 NSInteger totalCount = [managedObjectContext countForFetchRequest : fetchRequest 오류 : & 오류] (fetchedresults 컨트롤러 블록 내부) 행에서 정지합니다. iOS5 이전에 .App이 정상적으로 작동하고있었습니다. – Confused

답변

4

당신은 tableviews을 업데이트 performSelectorInBackground:을 사용하고있는 코멘트 말한다. 이것은 맞지 않습니다. UI에 영향을주는 모든 코드는 주 스레드에서 실행되어야합니다.

또한 스레드를 통해 MOC를 재사용해서는 안됩니다 (문제의 원인이라고 생각합니다). 각 스레드는 자신의 MOC를 가져야하며,이 MOC는 동일한 NSPersistentStoreCoordinator을 사용할 수 있습니다.

Apple's guide on this topic을 읽어야합니다.

관련 문제