目前正在尝试学习swift,我有点困惑为什么有些参数在它之前用点写,有些则没有。例如
向UIAlertView对象添加按钮
alert's name = simpleAlert
buttons title =“YES”
按钮的样式=默认
handler = nil
为什么写这个的合适方式是
simpleAlert.addAction(UIAlertAction(title:"YES",style: .Default, handler: nil))
而不是
simpleAlert.addAction(UIAlertAction(title:"YES",style: Default, handler: nil))
答案 0 :(得分:2)
这是写UIAlertActionStyle.Default
的简短方法(UIAlertActionStyle
是枚举,Default
是它的值。 UIAlertView
已经知道您将使用UIAlertActionStyle
作为该参数,因此您只需编写该枚举值即可。
答案 1 :(得分:1)
simpleAlert.addAction(UIAlertAction(title:"YES",style: .Default, handler: nil))
也可以写成
simpleAlert.addAction(UIAlertAction(title:"YES",style: UIAlertActionStyle.Default
, handler: nil))
UIAlertActionStyle是Enum
enum UIAlertActionStyle : Int {
case Default
case Cancel
case Destructive
}
所以.Default只是一个简化,这意味着已经给出了枚举类型,我们只需传递我们想要使用的正确案例。
答案 2 :(得分:1)
正如其他人已经说过的那样,这是UIAlertActionStyle.Default的简写。
跳过枚举的名称并简单地列出值(p
而不是.Default
)就是Swift“类型推断”的一个例子。
类型推断意味着如果编译器可以推断(计算出)某个值/参数的类型,则不必明确说明它。在上面的示例中,您为UIAlertActionStyle.Default
提供的值必须是UIAlertActionStyle类型的值,因此您可以跳过该部分。