我正在为导入模式开发文档提供程序扩展。
文件的 URL 位于扩展程序和容器应用程序共享的共享容器内。
我得到断言失败,说它应该位于共享容器/文件提供程序存储目录中。
所以我将文件从原始目录复制到 File Provider Storage 目录。
我在原始位置有一个文件,并且在新复制的位置也有一个文件。我还检查了文件的数据长度,它是正确的,
但是当我调用 [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];
}