2011-04-27 2 views
1

을 내 NSManagedObjectContext에 보내고 메모리 부족 경고를 받았을 때 고려해야 할 사항이 있습니까? NSManagedObject에 매달려있는 포인터를 무효화하는 것은 약간 어려울 것입니다 만, 그럴 경우 처리 할 수 ​​있습니다. 올바른 작업!조언 : 메모리 부족 상태에서 [NSManagedObjectContext reset]을 고려해야합니까?

또는 핵심 데이터 라이브러리가 라이브 메모리 크기를 줄이기 위해 NSManagedObject 객체에서 잘못입니까?

이 컨텍스트는 App Delegate에서 만들어 지므로 일반적으로 전체 응용 프로그램 수명주기 동안 유지됩니다. 백그라운드 스레드에 컨텍스트가 있지만 스레드가 종료되면 dealloc'd()를 얻습니다.

답변

5

코어 데이터는 메모리 부족 경고를 수신하고 캐시를 지우고 오류가있는 개체를 가능한 것으로 간주하는 등의 조치를 취합니다.

제 생각에는 자체 개체 지속 계층을 롤링하는 대신 Core Data를 사용하는 강력한 이유 중 하나입니다.

+0

폴 감사합니다, 내가 바라던 것이 었습니다! 핵심 데이터 (단순 사용 설명서 이상)에 대한 자세한 정보를 얻는 것은 약간 어려울 수 있습니다. – Damien

+0

+1 동의합니다. 메모리 관리는 Core Data의 큰 장점 중 하나입니다. – TechZen

+0

나에게 불행한 것은 NSFetchedResultsController를 사용할 때 메모리 부족 경고를받을 때 데이터를 잘못 처리하지 않는 것처럼 보입니다 ... managedObjectContext의 재설정을 통해 캐시 및 오류를 적절히 지울 수있는 유일한 방법입니다. – TheCodingArt