Swift3 “错误”;类型的值。。。“没有成员”;在惰性属性闭包中调用self时

Swift3 “错误”;类型的值。。。“没有成员”;在惰性属性闭包中调用self时,swift3,xcode8,Swift3,Xcode8,为什么下面的Swift3代码会导致错误类型值(NSObject)->()->MyView在Xcode 8中没有成员getSomeButton lazy var someButton = { return self.getSomeButton // ERROR }() private func getSomeButton() -> UIButton { return UIButton() } 实际上,错误消息完全是误导性的,应该是类似于不能推断闭包返回类型的内容。指定变量

为什么下面的Swift3代码会导致错误
类型值(NSObject)->()->MyView在Xcode 8中没有成员getSomeButton

lazy var someButton = {
    return self.getSomeButton // ERROR
}()

private func getSomeButton() -> UIButton {
    return UIButton()
}

实际上,错误消息完全是误导性的,应该是类似于
不能推断闭包返回类型的内容。指定变量类型可以解决这个问题。希望这能帮助别人

lazy var someButton: UIButton = {
    return self.getSomeButton // OK
}()