Xcode 访问另一个函数中的对象

Xcode 访问另一个函数中的对象,xcode,function,object,swift,Xcode,Function,Object,Swift,本质上,我有一个函数,其中创建了几个对象,还有一个函数,我试图访问这些对象。如下所示: func createButtons() { var myButton01 = BigButton.createbutton() var myButton02 = BigButton.createbutton() } 如您所见,我正在尝试访问对象,以便将它们与字典中的键配对 func setupConstraints() { var myButtonDictionary = ["myButton01"

本质上,我有一个函数,其中创建了几个对象,还有一个函数,我试图访问这些对象。如下所示:

func createButtons() {

var myButton01 = BigButton.createbutton()
var myButton02 = BigButton.createbutton()

}
如您所见,我正在尝试访问对象,以便将它们与字典中的键配对

func setupConstraints() {

var myButtonDictionary = ["myButton01": myButton01, "myButton02": myButton02]

...

}

我将如何在不必将第二个函数移到第一个函数的情况下使它们可访问。有没有办法让其他函数可以访问这些对象?

通常,您会在其他构造中使用这些函数,例如类,而这些对象将是实例变量

class BigButton {
    class func createButton() -> BigButton {
        return BigButton()
    }
}

class Foo {
    var myButton01: BigButton?
    var myButton02: BigButton?

    func createButtons() {
        myButton01 = BigButton.createButton()
        myButton02 = BigButton.createButton()
    }

    func setupConstraints() {
        var myButtonDictionary = ["myButton01": myButton01, "myButton02": myButton02]

    }
}

为正在使用的类设置myButton01和myButton02属性,或者如果没有类,只需将变量放在函数之外

如果没有课程,您会这样做:

var myButton01: BigButton? = nil
var myButton02: BigButton? = nil

func createButtons() {
    var myButton01 = BigButton.createbutton()
    var myButton02 = BigButton.createbutton()
}

func setupConstraints() {
    var myButtonDictionary = ["myButton01": myButton01!, "myButton02": myButton02!]

    ...
}

我唯一的问题是,第二个函数中的其余代码必须位于viewController类中,将其移动到单独的类会产生其他问题。为什么视图控制器类中没有
createButtons()
?在任何情况下,您都需要在与函数相同的范围内定义变量或将其传入。