如何将NSSecureCoding对象归档为数据

时间:2019-07-16 20:14:56

标签: swift zip share-extension

目标:

将来自共享扩展名的压缩文本文件传递到容器应用程序。

问题:

我能够从主机应用程序的UIActivityViewController中以NSSecureCoding格式获取压缩文件。但是我不知道如何将其转换为NSData。我需要转换为NSData以便将其保存在UserDefault中。

代码:

override func didSelectPost() {
        guard
            let content = extensionContext?.inputItems[0] as? NSExtensionItem,
            let contents = content.attachments,
            let result = contents.first
            else {return}
        let contentType = "public.zip-archive"

        if result.hasItemConformingToTypeIdentifier(contentType) {
            result.loadItem(forTypeIdentifier: contentType, options: nil) { (data, err) in

       // convert "data"(NSSecureCoding) to NSData variable

                }
            }
        }

我尝试过的解决方案:

Converting NSSecureCoding to NSData - Xcode - Swift 下面列出了本文提供的解决方案。这对我来说是行不通的或没有道理的。

NSData(contentsOfURL: data as! NSURL)

How to extract a zip file and get the extracted components in a Share Extension in Swift

OP的方法与我的需求不符。由于我正在使用的zip文件可能很大。因此,我宁愿在实际的容器应用中处理解压缩。

0 个答案:

没有答案