2015-09-16 2 views
3

У меня есть следующие строки кода в моем проекте ...Невозможно присвоить значение типа '(String !, Bool, [AnyObject] !, NSError!) -> Пустое значение типа 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) 
     } 
    } 
} 

Я получаю ошибку компилятора «Невозможно присвоить значение типа«(String !, 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

Смежные вопросы