2012-01-21 2 views
0

저는 주로 애호가 인 응용 프로그램을 가지고 있습니다. 객체 A는 객체 B가 많고 객체 B는 객체 C가 많습니다.어디에서 코드가 코어 데이터 저장을 수행하는 가장 좋은 장소입니까?

탐색 유형 응용 프로그램을 통해 내 IOS 응용 프로그램에 표시하고 A는 첫 페이지에 표시하고 B로 이동하여 C로 이동합니다.

내 A, B, C 개체 (사용자 지정 클래스)를 저장할 수 있기를 원하지만 A, B에 대한 데이터를 표시하는 테이블보기로 저장하고 읽을 때 확실하지 않습니다. 그리고 C가 뷰가 푸시 될 때/전에 채워 져야합니다.

didSelectRowAtIndexPath에서 읽어야합니까? 또는 다른 것? 그리고 저축은 어떨까요? 뒤로 물러나거나 다른 곳에서 도청을해야합니까? 아마도 수업 자체에서?

+0

당신의 물건이 크지 않고 사람들이 페이지를 너무 빨리 앞뒤로 쓸 수 없다는 것을 상상해보십시오. 그래서 물건을 아주 자주 저장할 수 있습니다. 즉, 모든 푸시와 팝, 적어도 모든 편집마다 의미가 있습니다. 값이 변경 될 때마다). 또한 앱이 배경, 화면 잠금 또는 홈 버튼으로 이동하면 저장하는 것을 잊지 마세요. – Ali

답변

0

사용자가 편집을 완료 할 때마다 저장해야합니다.

일단 사용자가 필요하면 B를 가져와야합니다. 사용자가 모든 A를 표시하는 테이블보기의 행을 탭하면 특정 A 객체와 관련된 B를 가져옵니다. 여기에는 두 가지 옵션이 있습니다 : (1) NSFetchRequest/NSFetchedResultsController으로 가져 오거나 (2) 해당 A 오브젝트의 B 오브젝트를 가리키는 A 오브젝트의 다 대 관계를 탐색하십시오.

저장 방법 : 많이 수정 한 경우 저장에 다소 시간이 걸릴 수 있습니다. 중첩 된 컨테스트 (-parentContext)와 함께 iOS 5에서 사용할 수있는 몇 가지 고급 기술을 사용하면 다른 (기본이 아닌) 스레드에 저장할 수 있습니다. 하지만 시스템이 백그라운드에서 진행되는 동안 프로세스가 종료 될 수 있기 때문에 일시 중지되기 전에 사용자의 안전이 완료되었는지 확인해야합니다.

관련 문제