2012-08-25 3 views
0

NSArchiver를 파일로 직렬화하는 방법은 무엇입니까? 이진 형식으로 직렬화된다고 가정합니다. 맞습니까? SQLite 데이터베이스에 저장할 수 있도록 문자열에 저장하려면 어떻게해야합니까? 나만의 맞춤 NSArchiver를 작성해야합니까? 그렇다면 어떻게해야합니까? 거기에 자습서가 있습니까?커스텀 NSArchiver 빌드하기

p.s. Core Data가이 작업을 수행 할 수 있지만 현재이 옵션을 건너 뛸 수 있음을 알고 있습니다.

답변

0

+archivedDataWithRootObject:과 함께 파일 대신 NSData 개체를 파일에 보관할 수 있습니다. "문자열"이 아니지만 괜찮습니다. 코코아의 NSString은 유니 코드 문자 시퀀스를 나타내므로 NSData은 바이트 시퀀스입니다 (데이터베이스에 포함하여 원하는 위치에 쉽게 저장할 수 있음). 당신이 정말로 대신 NSKeyedArchiver를 사용한다

참고 :

+ (NSData *)archivedDataWithRootObject:(id)rootObject

가이드에 대한

+ (id)unarchiveObjectWithData:(NSData *)data

+0

무엇 (https://developer.apple.com/library/mac /documentation/Cocoa/Conceptual/Archiving/Articles/codingctypes.html#//apple_ref/doc/uid/20001294-96941-BBCDIHEF) "NSData 객체로 구조를 래핑하면 안됩니다." 내가 저장하려고하는 구조는 C의 이중 링크 목록입니다. 구현 중입니다. 현재는 입력을 C API에 저장하려고하고 있으므로 기초적인 자료를 나중에 다시 사용할 수 있습니다. – huggie

+0

이것은 아카이브의 결과 비트를 사용하는 방법이 아니라 아카이브에 들어가는 것에 대해 이야기합니다. 질문은 "NSArchiver를 사용하는 방법을 알고 있지만 파일이 아닌 메모리에 보관하는 방법이 있습니까?"라고 묻는 것 같습니다. NSArchiver는 Objective-C 객체와 함께 사용하기위한 것이지 C 구조체가 아닙니다. –

+0

맞아, 나는 말하지 않았지만, C로 작성된 이중 링크 목록을 감싸고 싶다. 따라서 회신을 둘러싼 혼란. – huggie