2015-09-16 65 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

所示
相关问题