Reputation: 317
I have the following lines of code in my project...
@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)
}
}
}
I keep getting a compiler error "Cannot assign a value of type '(String!, Bool, [AnyObject]!, NSError!) -> Void' to a value of type 'UIActivityViewControllerCompletionWithItemsHandler?'" referring to the following line of code...
activityViewController.completionWithItemsHandler = {(type: String!, completed: Bool, returnedItems: [AnyObject]!, error: NSError!) -> Void in
Any suggestions would be appreciated.
Upvotes: 3
Views: 2281
Reputation: 2906
With Swift 3.0 the signature should be
activityViewController.completionWithItemsHandler = { (activity: UIActivityType?, completed: Bool, returnedItems: [Any]?, error: Error?) in
As shown in this post
Upvotes: 3
Reputation: 118731
Your type signature doesn't match the definition of UIActivityViewControllerCompletionWithItemsHandler
, which is (String?, Bool, [AnyObject]?, NSError?) -> Void
. Replace your !
s with ?
s and it should work fine.
Upvotes: 4