2011-10-24 2 views
4

죄송 추출하는,하지만 난 NSFileWrapper에서 구성 요소를 추출하고 docs were not particular enlightening.NSFileWrapper 기본 사항 :이 명백한 경우 구성 요소가

내가 두 래퍼를 가지고하는 방법과 사투를 벌인거야 방법. 하나는 간단한 txt 파일을 보유하고 있습니다. 다른 하나는 pageSettings를 보유합니다. PageSettings 여러 NSStrings, BOOLs을 유지하는 NSObject의 등등이 (Apple's Document-Based Application Programming Guide for iOS 기준) 내 래퍼 내가 다시 정보를 추출 지금 붙어 노력하고 있어요 :

그래서 내 문제는 txt 파일을로드하는 방법입니다
if (self.fileWrapper == nil) { 
    self.fileWrapper = [[NSFileWrapper alloc] initDirectoryWithFileWrappers:nil]; 
} 

NSDictionary *fileWrappers = [self.fileWrapper fileWrappers]; 

if (([fileWrappers objectForKey:@"page"] == nil) && (self.text != nil)) { 
    NSData *textData = [self.text dataUsingEncoding:NSUTF8StringEncoding]; 
    NSFileWrapper *textFileWrapper = [[NSFileWrapper alloc] initRegularFileWithContents:textData]; 
    [textFileWrapper setPreferredFilename:@"page"]; 
    [self.fileWrapper addFileWrapper:textFileWrapper]; 
} 

if (([fileWrappers objectForKey:@"pageSettings"] == nil) && (self.pageSettings != nil)) { 
    NSData *settingsData = [NSKeyedArchiver archivedDataWithRootObject:self.pageSettings]; 
    NSFileWrapper *settingsWrapper = [[NSFileWrapper alloc] initRegularFileWithContents:settingsData]; 
    [settingsWrapper setPreferredFilename:@"pageSettings"]; 
    [self.fileWrapper addFileWrapper:settingsWrapper]; 
} 

그리고 pageSettings 다시 self.text 및 self.pageSettings?

- (NSData *)serializedRepresentation을 사용합니까? 그렇다면 어떻게? 또는 다음과 같이 간단히 뒤집을 수 있습니까?

NSDictionary *fileWrappers = [self.fileWrapper fileWrappers]; 
self.text = [fileWrappers objectForKey:@"page"]; 
self.pageSettings = [fileWrappers objectForKey:@"pageSettings"]; 

나는 모든 설명에 매우 감사 할 것입니다. 정말 고마워.

답변

6
NSDictionary *fileWrappers = [self.fileWrapper fileWrappers]; 

NSFileWrapper *pageWrapper = [fileWrappers objectForKey:@"page"]; 
NSData *pageData = pageWrapper.regularFileContents; 
self.text = [[NSString alloc] initWithData:pageData encoding:NSUTF8StringEncoding]; 

NSFileWrapper *pageSettingsWrapper = [fileWrappers objectForKey:@"pageSettings"]; 
NSData *pageSettingsData = pageSettingsData.regularFileContents; 
self.pageSettings = [NSKeyedUnarchiver unarchiveObjectWithData:pageSettingsData]; 
+0

도움을 주셔서 대단히 감사드립니다. 샘플 코드를 사용하면 매우 명확합니다. –