例如,
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/