문서 유형이 파일 묶음을 포함하는 패키지 번들 인 NSDocument 기반 응용 프로그램에서 작업하고 있습니다. 나는 따라서 절약 해요 :왜 NSDocument에 파일을 저장하면 이름에 이상한 문자가있는 동일한 파일 버전이 생성됩니까?
- (NSFileWrapper *)fileWrapperOfType:(NSString *)typeName error:(NSError **)outError
{
if (!self.documentFileWrapper) {
NSFileWrapper *documentFileWrapper = [[NSFileWrapper alloc] initDirectoryWithFileWrappers:nil];
[self setDocumentFileWrapper:documentFileWrapper];
}
NSFileWrapper *defaultWrapper = [self.documentFileWrapper.fileWrappers objectForKey:@"default"];
if (!defaultWrapper) {
defaultWrapper = [[NSFileWrapper alloc] initDirectoryWithFileWrappers:nil];
[defaultWrapper setPreferredFilename:@"someFile.ext"];
[self.documentFileWrapper addFileWrapper:defaultWrapper];
}
[defaultWrapper addRegularFileWithContents: ... some computed content for the file ... preferredFilename:@"someFile.ext"];
return self.documentFileWrapper;
}
을 즉, 번들로, 폴더 "기본"을 만들고, 어떤 내용으로로 "someFile.ext"를 저장합니다.
이제 문제가 발생했습니다. 실제로 디스크에 저장되어 있는지 살펴 갈 때, 나는이를 참조하십시오
는내가 파일을 저장할 때마다 NSDocument 랩퍼는 자원의 일부 버전 복사본을 만들 것으로 보인다. 나는 버전이 지정된 복제본을 원하지 않으며 최신 내용의 바닐라 파일 만 원합니다.
버전이 지정된 리소스는 어디에서 제공 되나요? 무슨 일 이니? 읽어야 할 의사가 있습니까?
'+ (BOOL) preservesVersions' 반환 값 NSDocument의 수신 서브 클래스 버전을 지원하는 경우 YES; 그렇지 않으면 아니오. –
글쎄, 적어도 + (BOOL) preservesVersions가 NO를 반환 할 때, + (BOOL) autosavesInPlace가 반환하는 것에 상관없이 당신이리스트하는 여분의 파일의 존재를 확인할 수 있습니다. 이 두 함수의 반환 값을 변경하면 메뉴의 활성화 된 옵션에 영향을 미치므로 쿼리되지 않습니다. 다른 것을 찾으면 알려 드리겠습니다. – Erhannis