2015-09-16 67 views
3

我的代碼在我的項目下面的行...無法爲類型'(String!,Bool,[AnyObject]!,NSError!) - > Void賦值爲UIActivityViewControllerCompletionWithItemsHandler類型的值?'

@IBAction func shareMeme(sender: UIBarButtonItem) { 

    let newMeme = save() 
    let memedImage = newMeme.memedImage 
    let activityViewController = UIActivityViewController(activityItems: [memedImage], applicationActivities: nil) 

    presentViewController(activityViewController, animated: true, completion: nil) 

    activityViewController.completionWithItemsHandler = {(type: String!, completed: Bool, returnedItems: [AnyObject]!, error: NSError!) -> Void in 

     dispatch_async(dispatch_get_main_queue()){ 
      self.presentingViewController?.dismissViewControllerAnimated(true, completion: nil) 
     } 
    } 
} 

我不斷收到一個編譯器錯誤「不能指定類型的值「(字符串!BOOL,[AnyObject]!NSError!) - >空」到類型值‘UIActivityViewControllerCompletionWithItemsHandler’」指的是下面的代碼行...

activityViewController.completionWithItemsHandler = {(type: String!, completed: Bool, returnedItems: [AnyObject]!, error: NSError!) -> Void in 

任何建議,將不勝感激?。

回答

4

您的類型簽名與UIActivityViewControllerCompletionWithItemsHandler的定義不符,即(String?, Bool, [AnyObject]?, NSError?) -> Void。用?代替! s,它應該可以正常工作。

2

與SWIFT 3.0簽名應該是

activityViewController.completionWithItemsHandler = { (activity: UIActivityType?, completed: Bool, returnedItems: [Any]?, error: Error?) in 

this post

所示
相關問題