2010-04-07 2 views
3

내 iPhone 앱에서 실행 취소/다시 실행을 설정 했으므로 상태 저장 중입니다. 사용자가 앱을 종료 한 후 다시 시작하면 모든 것이 실행 취소/다시 실행 스택을 포함하여 같은 상태에 있습니다. NSUndoManager를 직렬화하는 명백한 방법이 없습니다. 이 작업을 수행하는 좋은 방법이 있습니까?NSUndoManager에서 상태 데이터를 일련 번호로 바꿉니다.

답변

3

재고 NSUndoManager는 내부 상태에 대한 액세스를 제공하지 않습니다. 가장 좋은 방법은 사용자 자신의 드롭 인 대체 실행 취소 관리자를 작성하거나 Graham Cox's GCUndoManager과 같은 오픈 소스 구현을 사용하는 것입니다. 소스 레벨 액세스가 가능하며 NSCoding 지원을 추가하는 것이 합리적입니다.

또는 NSUndoManager를 하위 클래스로 분류하여 일반 데이터베이스 외에 별도의 직렬화 가능 실행 취소 스택을 유지 관리 할 수 ​​있습니다.