我正在将Objective-C类别转换为Swift扩展,以提供添加约束的简化方法。用于等间距视图的一种方法具有以下签名,
func addAndEquallySpaceViews(views: [UIView], leftOrTopSpace: CGFloat?, rightOrBottomSpace: CGFloat?, options: NSLayoutFormatOptions?)
我这样称呼,
self.view.addAndEquallySpaceViews([view1, view2], leftOrTopSpace: nil, rightOrBottomSpace: nil, options: .AlignAllBottom)
我希望能够将nil传递给leftOrTopSpace和rightOrBottomSpace参数,但是当我为它们传递nil时,我得到一系列编译时错误。我可以单独为他们中的任何一个传递零,但两者都不能。为什么我不能为两个可选参数传递nil?
我遇到的错误似乎是非特定的,与相关行无关,
答案 0 :(得分:2)
这不是零CGFloats。这是隐式枚举类型。这是你的解决方法:
self.view.addAndEquallySpaceViews([view1, view2],
leftOrTopSpace: nil, rightOrBottomSpace: nil,
options: NSLayoutFormatOptions.AlignAllBottom)