Swift 如何修复此闭包语法错误:aka';可选<;(可选<;UIActivityType>;,Bool,可选<;Array<;Any>;,可选<;Error>;)->;()>';

Swift 如何修复此闭包语法错误:aka';可选<;(可选<;UIActivityType>;,Bool,可选<;Array<;Any>;,可选<;Error>;)->;()>';,swift,closures,syntax-error,Swift,Closures,Syntax Error,我正在学习雷·温德里希。 我遇到了一个闭包语法错误。 我想知道Xcode提示是什么意思 Xcode报告如下: /Users/../FlickrPhotosViewController.swift:107:54:无法将类型为“()->()”的值分配给类型为“UIActivityViewControllerCompletionWithItemsHandler?”(也称为“可选,可选)->()>”) 代码如下: let shareScreen = UIActivityViewController(ac

我正在学习雷·温德里希。 我遇到了一个闭包语法错误。 我想知道Xcode提示是什么意思

Xcode报告如下:

/Users/../FlickrPhotosViewController.swift:107:54:无法将类型为“()->()”的值分配给类型为“UIActivityViewControllerCompletionWithItemsHandler?”(也称为“可选,可选)->()>”)

代码如下:

let shareScreen = UIActivityViewController(activityItems: imageArray, applicationActivities: nil)
shareScreen.completionWithItemsHandler = { _ in
                self.sharing = false
}

需要解释。非常感谢。

我们希望您能够解释四种返回类型,这在Ray Wenderlich课程中没有明确说明。由于这些类型不用于“共享”操作,因此可以将类型名称替换为x。这也将有助于:

shareScreen.completionWithItemsHandler = { (_, _, _, _) in
                self.sharing = false
            }

答案=
shareScreen.completionWithItemsHandler={(类型,完成,项目,错误)在self.sharing=false}