考虑以下快速代码
view1.autoPinEdge(.top, toEdge: .bottom, ofView: view2)
什么是怎么回事.top
,.bottom
?
1)为什么允许使用这种看似模棱两可的方式指定变量?
2)如何迅速处理,其中有许多可能的情况.top
和.bottom
?
该方法(最有可能)声明为
func autoPinEdge(_ from: UIRectEdge, toEdge: UIRectEdge, ofView: UIView)
因此,编译器知道前两个参数的类型为UIRectEdge
。
调用该方法的完整语法是
view1.autoPinEdge(UIRectEdge.top, toEdge: UIRectEdge.bottom, ofView: view2)
但是编译器知道(文档说可以推断)类型,您只能传递成员
view1.autoPinEdge(.top, toEdge: .bottom, ofView: view2)