Ios8 UIDocumentPickerExtensionViewController的DismissGranningAccessToURL不工作
我正在为导入模式进行文档提供程序扩展 文件的URL位于扩展名和容器应用程序共享的共享容器内 我得到断言失败,它应该位于共享容器/文件提供程序存储目录中 所以我将文件从原始目录复制到文件提供程序存储目录 我在原始位置有一个文件&我在新的复制位置也有一个文件。我还检查了文件的数据长度是否正确 但当我打电话给[自我解构授权访问图尔:图尔] 它不会解除UIDocumentPickerExtensionViewController的功能 我没有遇到任何异常,但它不会关闭并启动传输,所以用户仍然可以访问扩展 下面是我的代码,如果有人遇到同样的事情,请留下你的答复Ios8 UIDocumentPickerExtensionViewController的DismissGranningAccessToURL不工作,ios8,ios8-extension,Ios8,Ios8 Extension,我正在为导入模式进行文档提供程序扩展 文件的URL位于扩展名和容器应用程序共享的共享容器内 我得到断言失败,它应该位于共享容器/文件提供程序存储目录中 所以我将文件从原始目录复制到文件提供程序存储目录 我在原始位置有一个文件&我在新的复制位置也有一个文件。我还检查了文件的数据长度是否正确 但当我打电话给[自我解构授权访问图尔:图尔] 它不会解除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];
}
如果您的备份文件提供程序扩展名尚未完全实现,则会发生这种情况。从嵌入式扩展阶段删除文件提供程序目标,在Info.plist中设置文档扩展名仅支持导入/导出模式,并在生成和运行扩展名之前执行产品->清理。调试NSFileProviderExtension的实现时,通常使用Xcode停止/杀死它。在此之后,iOS通常会在重新启动文件扩展名时遇到问题。这会导致在调用
dismissgrantingaccesstour:
后,文档选择器不会被解除。此错误还会影响UIDocumentPickerExtensionViewController
的子类,该子类有时不会启动(您只能看到文档选择器的导航栏,但看不到内容)
解决方法是重新启动设备。请尝试使用Xcode6.1测试版。我也有同样的问题…这对我来说没有任何改变。。。注意,我在“NewBox”示例应用程序中也有同样的问题!我再次创建了我的项目,当我添加“文档提供程序”目标时,我取消选中了“包含文件提供程序扩展名”复选框。我不知道这是否与此有关,但现在它起作用了!