例如,

alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler:{ (x:UIAlertAction) in
...


将给出“无法使用...找到初始化程序”错误。

但是,如果我说的是UIAlertAction!UIAlertAction?而不只是UIAlertAction,它会起作用。为什么是这样?

最佳答案

这些变量的类型均已在Cocoa API中声明。您必须匹配它们。一个事物和一个包装该事物的Optional是不匹配的;它们是两种完全不同的类型。

另一方面,当类型已知时,您可以省略它们。因此,最简单的方法是将x:UIAlertAction更改为简单的x甚至是_

关于ios - 为什么Swift闭包变量类型不能隐式展开为可选?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32753537/

10-09 18:49