我有一个名为airdropme.zip
的文件要包含在我的应用程序捆绑包中,我想让它可以通过AirDrop共享。下面的函数会弹出一个对话框,其中显示了文件名,但当我共享它时,传输的文件不是有效的zip存档;它不是airdropme.zip
。我曾尝试将airdropme.zip放在Assets.xcassets
文件夹中,但不起作用。我该将airdropme.zip
放在哪里?我该如何更改该函数,以便在被调用时通过AirDrop共享airdropme.zip
?
@IBAction func airdropMyFile() {
let fileURL = NSURL(fileURLWithPath: "airdropme.zip")
var filesToShare = [Any]()
filesToShare.append(fileURL)
let activityViewController = UIActivityViewController(activityItems: filesToShare , applicationActivities: nil)
activityViewController.popoverPresentationController?.sourceView = self.view
self.present(activityViewController, animated: true, completion: nil)
}
函数在Assets.xcassets
文件夹中找不到该文件。
1条答案
按热度按时间brc7rcf01#
如果zip文件位于应用的资源包中,则您可以按如下方式获取其URL:
强制解包结果是很好的,因为一旦你让它在开发中工作,它就永远不会失败。如果这行代码在开发过程中崩溃,那就意味着
airdropme.zip
文件没有在你的应用资源包中结束。转到你的目标的“构建阶段”,在“复制包资源”部分下查看,确保airdropme.zip
文件被列出。您发布的代码现在变为:
还要注意,在Swift中没有理由使用
NSURL
,使用URL
。FYI -当你试图创建一个带有文件路径的
URL
(或NSURL
)时,你应该传递一个完全限定的文件路径,而不仅仅是一个文件名。