首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拖放照片和沙箱应用程序

拖放照片和沙箱应用程序
EN

Stack Overflow用户
提问于 2017-02-23 22:32:37
回答 2查看 228关注 0票数 2

我有一个沙箱应用程序。我希望用户能够将图片从Photos应用程序拖到我的沙箱应用程序中。

我写了所有的代码,以处理“承诺的文件”,从照片没有问题时,使用它与一个非沙箱应用程序。但是对于我的沙箱应用程序,Photos告诉我它无权在目标文件夹中写入图片文件.这是我的沙箱应用程序中的临时文件夹。

这是一种逻辑,照片不能写在我的沙箱,甚至在临时文件夹。但是,由于我的应用程序在沙箱之外没有访问权限,我如何将文件从Photos交换到我的应用程序?

编辑,根据请求提供一些代码

代码语言:javascript
复制
NSString   *tempPath = [NSTemporaryDirectory() stringByAppendingPathComponent:[[NSUUID UUID] UUIDString]] ;
NSError    *error    = nil ;
[[NSFileManager defaultManager] createDirectoryAtPath:tempPath
                          withIntermediateDirectories:NO
                                           attributes:nil
                                                error:&error] ;
filenames = [sender namesOfPromisedFilesDroppedAtDestination:[NSURL fileURLWithPath:tempPath]] ;

(文件名是全局变量NSArray)

照片显示的错误信息(SOrry,图片是法语的,但这条信息并不是真正有用的,因为它不能完全显示。显示的部分显示"0文件(在1中)导出。不可能将“图像”移动到“文件夹”:要么该文件夹不存在,要么该文件夹不能//剪切//

当然,我检查了文件夹是否存在。

提供更多信息的编辑

我想我找到了一条调查路径:

  • 当我在临时文件夹中创建唯一的文件夹时,它会得到一个“隔离”标志。我检查过,使用终端和"ls -l",您可以在权限之后看到"@“。现在,如果我不创建唯一的文件夹,Photos可以直接将文件放在临时文件夹中。因此,问题是照片不能使用“隔离”文件夹。
  • 现在这一点也没有帮助。不管怎么说,drop图片文件也设置了隔离标志,我的应用程序无法读取它!

我没有办法摆脱那些隔离旗。

最奇怪的是,如果我一步一步地使用调试器,一切都很好。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-08 21:37:39

好吧,我发现出了什么问题。它与隔离或应用程序沙箱无关。

实际上,当调用namesOfPromisedFilesDroppedAtDestination:时,提供者应用程序(在我的例子中是Photos)开始在临时文件夹中写入文件。这可能需要一些时间。因此,我开始监视目标文件夹中的事件,并对第一个事件(仅为)进行响应。(查看这个:How can my OS X app accept drag-and-drop of picture files from Photos.app?)。

Photos应用程序分几个步骤发送这些文件。第一步创建一个临时文件,该文件后来被重命名为“正确”图像文件。创建临时文件是我的应用程序捕获的事件。当时我的应用程序正在检查图像文件是否存在,但它还没有出现。

因此,解决方案是继续检查文件夹事件,直到承诺的文件真正存在为止。如果还没有,那就继续等待。希望这款有前途的应用有一天能实现它的承诺。

感谢凯特兰逼我重新调查。

票数 1
EN

Stack Overflow用户

发布于 2017-03-07 20:32:30

Sandbox将允许文件承诺提供者应用程序写入文档文件夹。

代码语言:javascript
复制
[[NSFileManager defaultManager] URLForDirectory:NSDocumentDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:YES error:NULL];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42427455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档