2012-11-12 6 views
1

저는 Core Data에 젖은 채로 젖어 왔습니다. 저는 카드 게임을 쓰고 있으며 게임 통계를 저장하고 가져올 수 있습니다. 또한 각 이동 후에 게임의 상태를 저장하여 응용 프로그램이 종료 될 때 진행중인 게임을 재개 할 수있게하고 내 집 추출 실행 취소 시스템을 용이하게합니다.Core Data는 응용 프로그램이 다시 시작될 때 관리 작업을 실행 취소합니까?

불행히도 게임을 오래 사용할수록 느리게 느껴집니다. 나는 각각의 이동 후에 SqlLite에 52 개의 카드와 그들의 특정 상태를 저장하고 있기 때문에 이것이라고 생각합니다. 나는 이것이 내가 DB에 밀어 넣는 더 많은 데이터를 더 천천히 얻는다고 생각한다.

이 때문에 핵심 데이터에서 기본 제공되는 실행 취소 관리를 사용할 계획입니다. (나는 이것이 초기 구현에서 너무 늦을 때까지 거기에 있었다는 것을 기억하지 못했습니다.) 내 질문은 앱이 중간에 닫히면 같은 상태에서 실행 취소 관리로 다시 시작할 수 있습니까?

IE : 사용자가이 게임에서 10 번의 이동을한다고 상상해보십시오. 그들은 열 번을 되돌릴 수있을 것입니다. 앱을 종료하고 완전히 닫은 다음 앱을 다시 시작하면 코어 데이터를 사용자가 10 단계 실행 취소 단계를 계속 수행 할 수있는 상태로 되돌릴 수 있습니까?

약간의 연구에 따르면 단순히 NSCoding을 사용하여 응용 프로그램을 닫을 때 NSManagedObjectContext를 직렬화 된 파일에 유지 한 다음 응용 프로그램을 다시 시작할 때이 파일에서 상태를 복원 할 수 있습니다.

올바른 경로에 있습니까? 어떤 제안?

감사합니다.

답변

0

아니요 UndoManager가 지속적이지 않습니다. 예, NSCoding 또는 Plist를 사용하여 상태를 저장할 수 있습니다.

이 항목에 대한 자세한 내용은 당신이 내가 찾던 그냥 뭐 좋은 정보입니다 http://www.cimgf.com/2011/10/11/core-data-and-the-undo-manager/

+0

참조 할 수 있습니다. Core Data 구현과 관련된 다른 문제를 해결해야하기 때문에 아직 테스트하지 못했습니다. 일단 NSCoding이 기대했던대로 작동하는지 확인한 후에 이것을 받아 들일 것입니다. –

+0

자, 문제를 좀 더 자세히 검토 한 결과 귀하의 대답이 기술적으로 정확하다는 것을 알 수 있습니다. 아니요, UndoManager는 지속적이지 않고 NSCoding과 호환되지 않습니다. 그래서 나는 내가 생각할 수있는 어떤 식 으로든 국가를 유지할 수 없다. 그러나 NSManagedObjectContext는 NScoding과 호환되므로 지속될 수 있습니다. 그러나 그것은 불행히도 내 문제를 해결하지 못합니다. –

관련 문제