2011-11-29 6 views
0

Objective-C++에서 응용 프로그램이 특정 C++ 객체의 존재를 나타내는 파일을 저장하고로드 할 수 있기를 바랍니다. 예를 들어, 사용자는 애플리케이션을 실행하고, 오브젝트 a, b 및 클래스 A, BcC을 만들었다. 사용자는 저장을 클릭하여 이러한 형식의 개체를 나열하는 파일을 만듭니다. 그런 다음 응용 프로그램이 호출 생성자 A(), B()C()하여이 파일에서로드하고 새로운 객체 x, y, 및 클래스 A, BzC를 초기화 할 수 있어야한다. (이것은 분명히 프로세스의 단순화입니다.)저장된 파일에서 클래스 초기화

이렇게하는 것이 가장 좋은 전략이라고 생각하십니까? 생성자 또는 그 라인을 따라 무언가를 텍스트로 매핑하는 큰 switch 문보다 더 훌륭한 해결책이 있습니까? 함수 포인터가 나를 도울까요? A, BC 등의 객체를 소유하고있는 객체와 함께 자신을 등록하고 어딘가에 키가있는 생성자를 저장하는 것처럼 상상할 수 있지만 누락 된 내용이 있는지 궁금합니다.

큰 문제는 여기에 저장해야하는 수십 개의 클래스가 있으므로 가장 가벼운 솔루션을 원합니다. 난 당신의 게시물에 넣어 주석에 위로 다음

+1

직렬화에 대한 내용 : [http://en.wikipedia.org/wiki/Serialization](http://en.wikipedia.org/wiki/Serialization) –

+0

http://www.boost.org/doc /libs/1_47_0/libs/serialization/doc/index.html – Anthony

답변

0

가, 그 문서에서는 다음에 대한 목표 - C 상태 :

"는 목표 - C 프로그래밍 언어를 직렬화는 (더 일반적으로 보관라고도 함)에 의해 달성된다 개체 루트 클래스의 write:read: 메서드를 재정의합니다. "

저는 Objective-C에 익숙하지 않지만 직렬화 개념에 익숙합니다. 이 경우,이 메소드를 대체하여 지정된 유형의 오브젝트를 사용자가 지정하는 형식으로 파일에 기록 할 수있게하고 또한 파일에서 상태를 읽음으로써 상태를 설정할 수있게합니다.

나는 이것에 관한 많은 자습서를 공개 할 것이라고 확신한다.