2017-05-18 42 views
0

我想在收藏视图单元格中长时间按下时共享mp3文件。我写了下面的代码,但它什么也没有返回。我是指当我给自己发送电子邮件时。它不包括mp3文件,而且我也看不到whatsapp部分。在swift 3中分享mp3文件

let r = NSURL(fileURLWithPath: temp_url!) 
    //var activityItems: [Any] = [temp_url!] 
    let activityViewController = UIActivityViewController(activityItems: [r], applicationActivities: nil) 
    activityViewController.popoverPresentationController?.sourceView = self.view // so that iPads won't crash 

    // exclude some activity types from the list (optional) 
    let excludeActivities = [UIActivityType.airDrop, UIActivityType.print, UIActivityType.assignToContact, UIActivityType.saveToCameraRoll, UIActivityType.addToReadingList, UIActivityType.postToFlickr, UIActivityType.postToVimeo, UIActivityType.postToFacebook, UIActivityType.message, UIActivityType.postToWeibo] 
    activityViewController.excludedActivityTypes = excludeActivities 

    // present the view controller 
    self.present(activityViewController, animated: true, completion: nil) 


    // exclude some activity types from the list (optional) 
    activityViewController.excludedActivityTypes = [ UIActivityType.airDrop, UIActivityType.postToFacebook ] 

    // present the view controller 
    self.present(activityViewController, animated: true, completion: nil) 
+0

“我发现这个帖子斯威夫特:通过whatsapp分享mp3文件,但它也不适用于我。”这是非常无益的。具体而且详细地说,它不能为你工作吗? –

+0

对不起,我更新了这篇文章。 –

+0

你应该使用URL而不是NSURL在Swift3 –

回答

-1

我用下面的代码解决它;

if(temp_url != nil){ 
let activityViewController = UIActivityViewController(activityItems: [temp_url!], applicationActivities: nil) 
     activityViewController.popoverPresentationController?.sourceView = self.view // so that iPads won't crash 

     // exclude some activity types from the list (optional) 
     let excludeActivities = [UIActivityType.airDrop, UIActivityType.print, UIActivityType.assignToContact, UIActivityType.saveToCameraRoll, UIActivityType.addToReadingList, UIActivityType.postToFlickr, UIActivityType.postToVimeo, UIActivityType.postToFacebook, UIActivityType.message, UIActivityType.postToWeibo] 
     activityViewController.excludedActivityTypes = excludeActivities 

     // present the view controller 
     self.present(activityViewController, animated: true, completion: nil) 
} 
+0

这样使用force-unwrap是一个坏主意。 –

+0

你是说temp_url吗? –

+0

是的。使用force-unwrap通常是一个糟糕的主意,因为如果底层的可选项包含nil,则会导致崩溃。我把它叫做“crash-if-nil operator” –