2014-10-08 3 views
1

가져 오기 모드의 문서 공급 업체 확장 프로그램을 작성하고 있습니다.UIDocumentPickerExtensionViewController의 dismissGrantingAccessToURL이 작동하지 않습니다.

파일 URL이 확장 프로그램 & 컨테이너 앱에서 공유하는 공유 컨테이너 내에 있습니다.

어설 션 오류가있어 공유 컨테이너/파일 공급자 저장소 디렉토리에 있어야한다고 말합니다.

원본 파일의 파일을 파일 저장 장치 디렉터리로 복사했습니다.

원본 위치에 파일이 있습니다. & 새 복사 위치에 파일이 있습니다. 파일의 데이터 길이도 확인했는데, 적절하다.

하지만 [self dismissGrantingAccessToURL : toUrl]을 호출하면;

그것은

내가 예외를 직면하고 있지 않다, UIDocumentPickerExtensionViewController을 기각하지,하지만 늘 닫고 전송을 시작, 그래서 사용자가 여전히 확장에 액세스 할 수 있습니다.

다음은 내 코드입니다. 누군가 똑같은 것을 발견하면 답장을 남겨주세요.

- (void)userChoosesEntityOfUrl:(NSURL *)url 
{ 
    NSURL *toUrl = [self.documentStorageURL URLByAppendingPathComponent:[url lastPathComponent]]; 

    if ([[NSFileManager defaultManager] fileExistsAtPath:[toUrl path]]) { 
     [[NSFileManager defaultManager] removeItemAtPath:[toUrl path] error:nil]; 
    } 
    if ([[NSFileManager defaultManager] copyItemAtURL:url toURL:toUrl error:nil]) { 

     NSLog(@"%@", [toUrl path]); 
    } 
    if (![[NSFileManager defaultManager] fileExistsAtPath:[toUrl path]]) { 
     NSLog(@"File Doesn't exists at this path"); 
     return; 
    } 
    NSLog(@"Data Length %i",[[NSData dataWithContentsOfFile:[toUrl path]] length]); 

    [self dismissGrantingAccessToURL:toUrl]; 
} 
+0

Xcode6.1 베타를 사용해보십시오. – Ilanchezhian

+0

동일한 문제가 있습니다 ... – Sylverb

답변

0

완전히 구현되지 않은 파일 공급자 확장 프로그램이있는 경우 발생합니다. 임베디드 확장 단계에서 파일 제공자 대상을 제거하고 Info.plist에서 문서 확장 만 지원 가져 오기/내보내기 모드를 설정하고 확장을 빌드하고 실행하기 전에 제품 -> 정리를 수행하십시오.

+0

이것은 나에게 어떤 변화도 일어나지 않습니다 ... "NewBox"샘플 앱에서도 똑같은 문제가 있습니다! – Sylverb

+0

프로젝트를 다시 만들었습니다. "문서 공급자"대상을 추가하면 "파일 공급자 확장명 포함"확인란의 선택을 취소했습니다. 그게 관련이 있는지 모르겠지만 지금은 효과가 있습니다! – Sylverb

2

NSFileProviderExtension 구현을 디버깅 할 때 대개 Xcode를 사용하여 중지/종료됩니다. 이 후 iOS는 파일 확장자를 다시 시작하는 데 문제가 있습니다. 그러면 dismissGrantingAccessToURL:을 호출 한 후 문서 선택 도구가 닫히지 않습니다. 이 버그는 UIDocumentPickerExtensionViewController 하위 클래스에도 영향을 미치기도합니다 (문서 선택기의 탐색 막대 만 표시되지만 내용은 표시되지 않음).

해결 방법은 장치를 재부팅하는 것입니다.