2014-10-08 3 views
1

Я работаю над расширением поставщика документов для режима импорта.УвольнениеGrantingAccessToURL UIDocumentPickerExtensionViewController не работает

URL-адрес файла находится внутри общего контейнера, совместно используемого как с расширением & контейнерное приложение.

У меня возникло недоумение утверждения о том, что он должен находиться в папке с общим контейнером/файлом поставщика.

Поэтому я скопировал файл из исходного каталога в каталог хранилища файлов поставщика.

У меня есть файл в исходном месте & У меня также есть файл в новом скопированном расположении. Я также проверил длину данных файла. Собственно,

Но когда я звоню [self vacGrantingAccessToURL: 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 beta. – Ilanchezhian

+0

У меня такая же проблема ... – Sylverb

ответ

0

Это произойдет, если у вас есть резервное расширение поставщика файлов, которое не было полностью реализовано. Удалите цель поставщика файлов с фазы встроенного расширения, установите расширение вашего документа только в режиме импорта/экспорта в Info.plist и выполните продукт -> Очистить до создания и продолжения вашего расширения.

+0

Это ничего не меняет для меня ... Обратите внимание, что у меня тоже есть то же самое с примером приложения NewBox! – Sylverb

+0

Я снова создал свой проект, и когда я добавил цель «Поставщик документа», я снял флажок «Включить расширение поставщика файлов». Я не знаю, связано ли это с этим, но теперь он работает! – Sylverb

2

При отладке вашей реализации NSFileProviderExtension вы обычно останавливаете/убиваете его с помощью Xcode. После этого у iOS часто возникают проблемы с перезапуском вашего расширения файла. Это приведет к тому, что ваш сборщик документов не будет уволен после звонка dismissGrantingAccessToURL:. Эта ошибка также влияет на ваш подкласс UIDocumentPickerExtensionViewController, который иногда не запускается (вы видите только панель навигации сборщика документов, но не контент).

Обходным путем является перезагрузка устройства.