不能将 nil 传递给两个可选参数
Can't pass nil to two optional parameters
我正在将 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,但不能为两者都传递。为什么我不能为两个可选参数都传递 nil?
我得到的错误似乎是非特定的,与有问题的行无关,
这不是零 CGFloats。它是隐式枚举类型。这是您的解决方法:
self.view.addAndEquallySpaceViews([view1, view2],
leftOrTopSpace: nil, rightOrBottomSpace: nil,
options: NSLayoutFormatOptions.AlignAllBottom)
我正在将 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,但不能为两者都传递。为什么我不能为两个可选参数都传递 nil?
我得到的错误似乎是非特定的,与有问题的行无关,
这不是零 CGFloats。它是隐式枚举类型。这是您的解决方法:
self.view.addAndEquallySpaceViews([view1, view2],
leftOrTopSpace: nil, rightOrBottomSpace: nil,
options: NSLayoutFormatOptions.AlignAllBottom)