2015-10-04 63 views
2

ShareButton功能在Xcode 6工作,但它在該行升級到Xcode 7後具有錯誤:UIActivityViewController誤差2

avc.completionWithItemsHandler = {

我的代碼:

@IBAction func ShareButton(sender: AnyObject) { 

    let things = ["Thank you"] 

    let avc = UIActivityViewController(activityItems:things, applicationActivities:nil) 

    avc.setValue("Salon Job HK", forKey: "subject") 

    avc.completionWithItemsHandler = { 

     (s: String!, ok: Bool, items: [AnyObject]!, err:NSError!) -> Void in 

    } 

    self.presentViewController(avc, animated:true, completion:nil) 

    if let pop = avc.popoverPresentationController { 

     let v = sender as! UIView // sender would be the button view tapped, but could be any view 

     pop.sourceView = v 

     pop.sourceRect = v.bounds 

    } 

} 

回答

9

只需檢查Swift 2.0 UIActivityViewControllerCompletionWithItemsHandler的聲明離子:

typealias UIActivityViewControllerCompletionWithItemsHandler = (字符串?, BOOL,[AnyObject] ?, NSError?) - >空隙

嘗試這樣的:

avc.completionWithItemsHandler = { 

    (s: String?, ok: Bool, items: [AnyObject]?, err:NSError?) -> Void in 

} 

或簡單地:

avc.completionWithItemsHandler = { 
    (s, ok, items, err) in 

} 

斯威夫特3

@IBAction func shareButton(sender: Any) { 
    let things = ["Thank you"] 
    let avc = UIActivityViewController(activityItems: things, applicationActivities: nil) 
    avc.setValue("Salon Job HK", forKey: "subject") 
    avc.completionWithItemsHandler = { 
     (activityType, completed, returnedItems, activityError) in 
     // code 
    } 
    present(avc, animated: true) 
} 
0

除了上面的回答,您還可以將其設置爲無,因爲你似乎沒有被做任何事情,當完成被稱爲

avc.completionWithItemsHandler = nil 
6

這再次略微改變雨燕3.0

UIActivityViewControllerCompletionWithItemsHandler = (UIActivityType?, Bool, [Any]?, Error?) -> Void