2010-06-02 10 views
1

나는 기존 개체의 테이블과 추가 단추를 사용하여 사용자가 새 개체를 만들 수 있도록하는 뷰를 제공합니다. 사용자가 Add를 누르면 목록보기 컨트롤러에 개체가 만들어 지므로 개체가 해당 관리되는 개체 컨텍스트 (NSEntityDescription insertNewObjectForEntityForName: 메서드를 통해)의 일부가됩니다.NSManagedObject 새로 고침하는 방법

추가보기에는 관리 대상 개체에 대한 속성이 있습니다. 목록보기 컨트롤러에서 보기 컨트롤러 추가를 만들고 속성을 내가 만든 관리 개체로 설정 한 다음 을 추가 한 다음 추가보기를 탐색 스택에 푸시합니다.

추가보기에는 저장 및 취소를위한 두 개의 단추가 있습니다. 저장시 관리되는 개체 을 저장하고 위임 메서드를 통해 관리되는 개체를 목록보기 컨트롤러로 다시 전달합니다. 사용자가 취소 한 경우 개체를 삭제하고 nil을 목록보기 컨트롤러로 다시 전달합니다.

추가보기에서 발생하는 복잡성은 UIImagePickerController과 관련이 있습니다. Add 뷰에는 사용자가 객체 의 사진을 찍을 수있는 버튼이 있습니다 (또는 사진 라이브러리의 기존 사진을 사용하십시오). 그러나 UIImagePickerController으로 전송하고 사용자가 카메라를 사용하는 과정은 추가보기 컨트롤러에서 didReceiveMemoryWarning 이됩니다.

또한 뷰가 언로드되어 내 NSManagedObject이 위태로운 상태가되었습니다. 제 질문은 입니다. 메모리가 부족한 상황에서 가 발급되었으므로 NSManagedObject을 다시로드하는 방법은 무엇입니까?

답변

0

단지 제안 사항이지만 사용자가 편집을 완료 할 때까지 관리 객체를 만드는 것을 기다리는 것은 어떻습니까?

별도로 보관하는 사전에 "편집자"의 모든 속성을 저장합니다 (편집 중에 전화가 왔거나 다른 앱의 텍스트를 복사하여 새 항목에 붙여 넣기를 원할 경우 저장). 필드를 편집 할 때마다 그런 다음 사용자가 편집을 마쳤 으면 사전 컨텐츠에서 관리 대상 개체를 만들어 한 번에 저장하십시오. 취소 할 경우 사전을 재설정 (또는 삭제)하고 영구 파일을 정리하십시오. 이렇게하면 메모리 부족 상황에서 더 잘 제어 할 수 있습니다.

관련 문제