2010-03-15 6 views
7

NSKeyedArchiver를 사용할 때 * .plist로 작성된 데이터입니다. 사람들이 * .txt 또는 확장자가없는 출력 파일이있는 몇 가지 예제를 보았습니까?NSKeyedArchiver는 어떤 형식으로 저장합니까?

-(void)saveCore { 
    NSMutableData *data = [[NSMutableData alloc] init]; 
    NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data]; 
    [archiver encodeObject:reactorCore forKey:@"CORE"]; 
    [archiver finishEncoding]; 
    [data writeToFile:[self dataFilePath] atomically:YES]; 

    [data release]; 
    [archiver release]; 
} 

게리

+0

@JasonCoco 사실이 아닙니다. Ole Begemann의 대답을 참조하십시오. –

+0

@JonaChristopherSahnwaldt 사실입니다. 생성 된 데이터는 바이너리 plist 데이터이며 구조가 완전히 독점적입니다. 예,이 바이너리 plist 데이터를 XML plist와 같은 다른 것으로 변환 할 수는 있지만, plist가 덜 독점적으로 구성되는 방식을 만들지 않으며, 주어진 형식을 취할 수도 없다는 것을 의미하지는 않습니다. 원할 경우 버전 간을 쉽게 변경할 수 있습니다. –

+0

@ JasonCoco 'binary plist'가 무슨 뜻인지 이해할 수 없습니다. 나는 바이너리 파일 포맷을 의미한다고 생각했고, XML은 바이너리 포맷이 아니었다. 그리고 내가 아는 한, plist XML 형식은 개념 상 변경되지 않았습니다. –

답변

14

당신은 당신이 원하는 모든 파일 확장자를 사용할 수 있습니다. NSKeyedArchiver가 사용하는 실제 파일 형식과 완전히 관련이 없습니다. 기본적으로 아카이브는 바이너리 형식이지만, 아카이버의 outputFormat 속성을 NSPropertyListXMLFormat_v1_0으로 설정하면 XML plist가 작성됩니다. 그렇게하면 파일에 .plist 또는 .xml 확장명을 지정해야합니다.

+0

감사합니다. 올레, 많이 감사합니다. – fuzzygoat

+1

이것은 100 % 정확합니다. TextMate에서 바이너리 plist 파일을 열면 자동으로 ASCII로 변환됩니다 (상단에 "!!! BINARY PROPERTY LIST WARNING !!!"가 표시됨) ... 이는 혼란 스러울 수 있습니다. –

관련 문제