首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自NSItemProvider的URL的有效时间

来自NSItemProvider的URL的有效时间
EN

Stack Overflow用户
提问于 2019-05-07 23:27:10
回答 1查看 316关注 0票数 1

我正在编写一个共享扩展,它将接受图像并与它们一起执行一些操作。在我的UIViewController子类的方法中,我可以通过这样的方式访问特定文件的URL:

代码语言:javascript
复制
guard let context = self.extensionContext else {
    return
}
guard let items = context.inputItems as? [NSExtensionItem] else {
    return
}

for item in items {
    guard let attachments = item.attachments else {
        continue
    }

    for attachment in attachments {
        guard attachment.hasItemConformingToTypeIdentifier("public.jpeg") else {
            continue
        }
        attachment.loadFileRepresentation(forTypeIdentifier: "public.jpeg") { (url, error) in
            if let url = url {
                // How long is this "url" valid?
            }
        }
    }
}

在我传递给loadFileRepresentation(forTypeIdentifier:completionHandler:)的块中,我得到了一个文件的URL --在本例中,是一个JPEG。我可以假设这个URL有多长时间有效吗?具体来说,是否可以安全地将URL本身写入某个共享存储区域,以便我的应用程序可以在以后访问指向文件?或者我应该假设URL是短暂的,如果我想访问它所指向的文件,我应该在这个块中创建自己的文件副本?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-07 23:35:41

loadFileRepresentation的文档声明:

此方法将文件数据的副本写入临时文件,系统在完成处理程序返回时删除该文件。

因此,url对于完成处理程序的结束大括号是有效的。

如果需要访问完成处理程序之外的文件,则需要在完成处理程序中完成之前将文件复制到沙箱中的已知位置。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56031648

复制
相关文章

相似问题

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