2017-05-18 3 views
0

콜렉션 뷰 셀에서 길게 누르면 mp3 파일을 공유하고 싶습니다. 나는 아래 코드를 썼다. 그러나 그것은 아무 것도 반환하지 않는다. 내 자신에게 전자 메일을 보냈을 때 말입니다. 그것은 mp3 파일을 포함하지 않으며 또한 whatsapp 부분을 볼 수 없습니다.신속한 mp3 파일 공유 3

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

"swift : whatsapp를 통해 mp3 파일을 공유하지만 나에게 적합하지 않습니다." 그것은 심하게 도움이되지 않습니다. 구체적이고 구체적으로 어떻게 작동하지 않습니까? –

+0

죄송합니다. 게시물을 업데이트합니다. –

+0

Swift3에서 NSURL 대신 URL을 사용해야합니다. –

답변

-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

강제력 해제를 사용하는 것은 좋지 않습니다. –

+0

temp_url에 대해 말하고 있습니까? –

+0

예. force-unwrap을 사용하는 것은 일반적으로 나쁜 생각입니다. 기본 옵션에 nil이 포함되어 있으면 충돌하기 때문입니다. 나는 이것을 "충돌이 일어나지 않는 연산자"라고 부른다. –