2010-04-22 5 views
0

/NSKeyedArchive를 사용하는 것보다 ObjC 개체를 직렬화하는 더 좋은 방법이 있습니까?NSCoding 및 ostream

다른 컴퓨터에 저장하려면 C++ 표준 : ostream과 유사한 개체를 통해 개체를 배포해야합니다.

목적은

그들 모두를위한
[coder encodeObject: (id) forKey: @"blah"]; 

에 저를 원하는 다양한 유형의 122 이상의 회원 ...을 ...이 사람이 좋은 펄 스크립트가 있습니까

적어도 것 그것을 밖으로 쓴다? 객체의 소스를 변경할 수 없기 때문에 이것이 포함되어있는 객체가 구현한다는 것을 의미하는 것은 아닙니다. 나는 &을 상속 받아야합니다 ...

을 추가하십시오.

아니면 내가 바보인가요? Apple's guide은 ostream을 통해 XML 보관이 제대로 전달되지 않으므로 도움이되지 않습니다.

더 좋은 방법이 있나요?

-S!


[편집 1]

그래서 나는 NSCoding을 검토 한 결과, 내 수업은 <NSCoding>을 준수하지 않는 ... 일반적인 NSManagedObjects을 포함합니다. 나는 [여기] [2]에서 발견 된 Aspect Oriented Programing을 사용해 보았습니다. 그러나 이것은 런타임에 무한 재귀를 유도합니다. (적어도 그게 내가 [id encodeWithCoder:]에 104795 호출의 호출 스택을 가정합니다.

플러스, 나는 그 구성원이 가져온 프레임 워크의 개체이기 때문에로드 할 때 그냥 <NSCoding>을 클래스에 추가 할 수 없습니다. 프로토콜을 추가하기 만하면 Aspect-Oriented가 작동한다고 생각하는 이유입니다.

내가 가진 마지막 아이디어는 내가 필요한 모든 클래스를 서브 클래스 화하고 그곳에서 프로토콜을 구현하는 것입니다. 프레임 워크에 노출되지 않은 클래스의 NSArrays가 포함되어 있다면 거대한 장애물이 될 수 있습니다. 그런 다음 나는 침몰합니다.

더 좋은 방법이 있나요? 설계 시간 결정, 이 기능을 추가하기에는 너무 늦었습니다.

도움 ... 제한 링크 ​​

이 전체 스팸 방지 것은 빨아

PS. 나는 어떻게 지적인 질문을해야만 하는가?

[2] : HTTP ://davedelong.com/blog/2009/04/13/aspect-oriented-programming-objective-c#comment-803

답변

1

올바른 방법으로 확실히 NSCoding되어 사용 가기. 모든 NSCoding 관련 상용구를 입력하고 싶지 않다면 (그리고 나는 동의합니다) Accessorizer을 작성하여 작성해보십시오.

+0

[this] (http://davedelong.com/blog/2009/04/13/aspect-oriented-programming-objective-c#comment-803 "Aspect Oriented Programming ObjC") 내가 정확히 무엇을합니까? 필요. 실제로 클래스를 편집 할 수 없으므로 (프레임 워크에 있음), 만 추가하여 엄청나게 역겨운 상속 트리를 만들고 싶지 않았습니다. 하지만 ... 나는 Accessorizer를 사용할 것이다.그것은 하늘을 본다. –

관련 문제