2009-12-14 2 views
0

일부 백분율을 편집 할 수있는 응용 프로그램이 있지만 그 백분율이 100에 추가 될 경우에만 변경 내용을 커밋 할 수 있습니다. 그러나 핵심 데이터 서식 파일에 응용 프로그램의 저장 코드가 포함되어 있기 때문에 종료됩니다. 사용자가 무언가를 변경 한 다음 애플리케이션을 종료 한 경우 항목이 100 %에 추가되지 않아도 물론 저장됩니다.iPhone 핵심 데이터 응용 프로그램이 저장 데이터베이스를 종료해야합니까?

따라서 응용 프로그램의 저장이 종료된다는 것을 간단히 설명하기로 결정했습니다. 다른 옵션은 편집을 위해 다른 컨텍스트를 사용하고 변경 사항을 병합하거나 실제 저장 지점까지 컨텍스트 값을 설정하는 것입니다. 그러나 사용자가 저장 버튼을 클릭 할 때 응용 프로그램에서 원하는 내용을 저장하므로이 줄을 주석으로 처리하는 데 아무런 해가되지 않습니다. 따라서 내 질문은 다음과 같습니다. 응용 프로그램의 저장이 필수 항목을 종료합니까? 이것이 가능한 결과는 무엇입니까? 이 줄을 주석 처리 한 후에도 응용 프로그램이 계속 잘 작동한다는 점에 유의해야합니다 (이것이 내가 예상 한 것입니다).

미리 감사드립니다. 종료됩니다 응용 프로그램에 저장

오스카

+1

나는 당신이 당신 자신의 질문에 대답했다고 믿습니다. BTW, 귀하의 질문에 대답 할 수있는 유일한 사람은 당신입니다! – KevinDTimm

답변

1

언제든지 저장할 수 있습니다.

그러나 앱 종료 시점을 알 수 없습니다. 보다 일반적인 플랫폼 (예 : 데스크톱)의 애플리케이션과 달리 iPhoneOS는 앱 관점에서 앱을 무작위로 종료합니다. 유일한 경고는 applicationWillTerminate 메시지가 앱 대리인에게 전송됩니다. 저장을 처리하지 않으면 어느 시점에서 사용자가 데이터를 잃을 가능성이 큽니다.

디자인을 재고해야한다고 생각합니다. 그것은 (1) 코드의 다른 곳에서 처리되거나 (2) 일시적인 속성에 의해 처리 될 수있는 관리 대상 객체에 계산을 넣는 것처럼 들립니다. 관리 대상이 모자 한 방울에 저장 될 수없는 조건이 없어야합니다. 이렇게하면 데이터 모델이 내부 무결성을 위해 외부 코드에 완전히 의존하게됩니다. 이로 인해 유지 관리, 이식성 및 업그레이드에 문제가 발생합니다.

+0

데이터가 최대 100 %가 될 때까지 데이터가 유효하지 않으면 중간 상태를 저장하지 않으면 응용 프로그램 설계에 완전히 적합 할 수 있습니다. – Tim

+0

답변 해 주셔서 감사합니다. 예. 데이터를 최대 100 %까지만 추가 할 때 관리 대상 개체 만 수정되도록 다시 디자인하겠습니다. I –

+0

는 그 변경에 대해 UndoManager에 등록하고 단순히 애플리케이션이 종료 할 것이다 결정 : 동안 ([managedObjectContext.undoManager는 canUndo]) { \t \t \t [managedObjectContext.undoManager가 취소]; \t} 물론 데이터가 100 %에 추가되면 undomanager는 nil로 설정됩니다. 다음 저장하십시오. 그것은 좋은 방법일까요? –

0

그것의 필수 없습니다. 앱 컨텍스트에 적합한 것으로 느껴질 때 언제든지 저장할 수 있습니다.

관련 문제