Function Can';t将nil传递给两个可选参数

Function Can';t将nil传递给两个可选参数,function,swift,null,Function,Swift,Null,我正在将Objective-C类别转换为Swift扩展,以提供添加约束的简化方法。等间距视图的一种方法具有以下特征: func addAndEquallySpaceViews(views: [UIView], leftOrTopSpace: CGFloat?, rightOrBottomSpace: CGFloat?, options: NSLayoutFormatOptions?) 我这样叫它, self.view.addAndEquallySpaceViews([view1, view2]

我正在将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和righorbottomspace参数,但是当我将nil传递给这两个参数时,会出现一系列编译时错误。我一个人可以通过零分,但不能同时通过两个。为什么两个可选参数都不能传递nil

我得到的错误似乎是非特定的,与所讨论的行无关


这不是零现金流。它是隐式枚举类型。以下是您的解决方法:

self.view.addAndEquallySpaceViews([view1, view2], 
    leftOrTopSpace: nil, rightOrBottomSpace: nil, 
    options: NSLayoutFormatOptions.AlignAllBottom)

酷!多大的错误啊。:)我可以复制它!因此,现在您可以继续,而无需更改API并传递您想要传递的相同值。但请务必向苹果公司报告。破坏编译器总是没有道理的!这是我想不到的解决办法。你知道如果我通过一个零而不是两个,隐式枚举为什么有效吗?一点也不知道,也不感兴趣。这是编译器中的一个bug。告诉苹果公司,让他们解决这个问题!