Ios 通过sharesheet共享音频文件

Ios 通过sharesheet共享音频文件,ios,swift,Ios,Swift,我正在尝试使用iOS的共享表功能共享音频文件。我无法将音频文件放入共享页以进行共享。就目前而言,电子邮件中没有添加任何文件和附件或音频文件(例如) 我有以下检索音频文件的代码。我可以使用MFMailComposeViewController将其显式地作为电子邮件发送,但我希望将其“抛出”到共享页,以允许用户上传到email/dropbox/google驱动器文件 这可能吗 let objectsToShare: NSMutableArray = [] let docsDir =

我正在尝试使用iOS的共享表功能共享音频文件。我无法将音频文件放入共享页以进行共享。就目前而言,电子邮件中没有添加任何文件和附件或音频文件(例如)

我有以下检索音频文件的代码。我可以使用
MFMailComposeViewController
将其显式地作为电子邮件发送,但我希望将其“抛出”到共享页,以允许用户上传到email/dropbox/google驱动器文件

这可能吗

    let objectsToShare: NSMutableArray = []

    let docsDir = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0]
    let soundFilePath = (docsDir as NSString).stringByAppendingPathComponent(fileName)
    let fileManager = NSFileManager.defaultManager()
    let fileContent = fileManager.contentsAtPath(soundFilePath)


    objectsToShare.addObject(fileContent!)

    if let objects = objectsToShare as [AnyObject]? {
        let activityVC = UIActivityViewController(activityItems: objects, applicationActivities: nil)

        if let subject = noteTitle.text as String? {
            activityVC.setValue(subject, forKey: "subject")
        }

        self.presentViewController(activityVC, animated: true, completion: nil)
    }
提前感谢:)

您将文件内容放入
objectsToShare
中<代码>活动VC可以共享内容,但不知道它是要共享的文件

我想你需要一个新的。像这样未经测试的代码:

var dic:UIDocumentInteractionController? // has to be instance variable not buried in a method, or the dic is deallocated before it can open the file.
func shareFile(filePath:String, fileName: String, from:UIBarButtonItem) {
    let url = NSURL(fileURLWithPath: filePath)
    dic = UIDocumentInteractionController(URL:url)
    dic?.UTI = fileName
    dic?.presentOptionsMenuFromBarButtonItem(from, animated: true)
}

如果将
dic
设置为
shareFile
方法中的局部变量,则它往往会在文件打开之前被释放,从而导致
无法获取文件大小(null)
错误。改为将其作为类的实例变量。

谢谢您的建议。我明天会查一查,然后再给你回复。这足以为我指明正确的方向。非常感谢:)