0

여기 거래가 있습니다 ... (내 앱 중 다른 앱에서) 앱을 만들고 있지만 NSDocumentDirectory 만 사용하는 것으로 변경하고 있습니다. 사용자가 모든 사용자를 볼 수있게합니다. 파일, 단지 몇 개의 파일, 즉 사용자가 만든 PDF 만 볼 수 있습니다. 나는 그것을 작동 시키지만, iTunes의 FileSharing/Documents 창에는 아무것도 나타나지 않습니다.NSApplicationSupportDirectory와 NSDocumentDirectory를 모두 사용합니다.

먼저 지속성 모델의 NSApplicationSupportDirectory를 호출하는 방법 ...

+(NSString *)getDocumentpath 
{ 
    //NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES); 
    return [paths objectAtIndex:0]; 
} 

+(NSString *) documentsDirectoryPath 
{ 
    //NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    return documentsDirectory; 
} 

+(void) copyResourceFileToDocumentsDirectory: (NSString *) fileName 
{ 
    //NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    NSString *writablePath = [documentsDirectory stringByAppendingPathComponent:fileName]; 

    NSFileManager * fileManager = [NSFileManager defaultManager]; 
    BOOL succeeded = [fileManager fileExistsAtPath:writablePath]; 
    NSError *error; 

    //If file is not in the documents directory then only write 
    if (!succeeded) 
    { 
     NSString *newPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:fileName]; 
     succeeded = [fileManager copyItemAtPath:newPath toPath:writablePath error:&error]; 

     if (succeeded == FALSE) { 
      NSLog(@"%@ : copy failed", fileName); 
     } else { 
      NSLog(@"%@ : copy success", fileName); 
     } 
    } else { 
      NSLog(@"%@ : already exists", fileName); 
    } 
} 

이 다른 응용 프로그램에서 변경되지 않은 NSDocumentDirectory,에 PDF를 저장하기위한 방법은 ...

- (NSString*)saveJournalToPDF:(UIView*)journal andName:(NSString*)name 
{ 
    NSString* fileName = [NSString stringWithFormat:@"%@.pdf",name]; 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    NSString *writableDBPath = [documentsDirectory stringByAppendingPathComponent:fileName]; 

    ... // the rest of the data strings for creating the PDF 

} 

내 질문 : 다른 데이터 파일을 노출하지 않고 사용자에게 보이게하는 방법은 무엇입니까? 바로 지금, 그것은 모두 또는 아무것도 아닌 것 같습니다!

답변

0

나는 작은 세부 사항을 무시하고 ... 실제로 파일을 공유하도록 앱을 설정합니다! 응용 프로그램의 info.plist에 "응용 프로그램이 iTunes 파일 공유를 지원합니다"가 YES로 설정되어 있지 않았습니다. (UIFileSharingEnabled). 이러한 간단한 수정 !!!

관련 문제