在swift中调用函数

时间:2017-01-03 18:22:47

标签: swift function

所以我是swift的新手。我正在努力学习如何调用函数。这看起来非常简单,但是当我试图实现它时,我得到了所有这些"预期的声明错误"我不知道是什么问题。我尝试放入viewDidLoad函数,但每当我执行此操作时,我会延迟或类似的东西,它会自动执行它们而无需等待。你怎么正确调用这个函数?这是代码告诉我你的想法

func sayHello() { 
    print("Hello!")
} 
sayHello()

这是上下文的图片

enter image description here

1 个答案:

答案 0 :(得分:3)

viewDidLoad()方法中,您可以这样称呼它:

override func viewDidLoad() {
    super.viewDidLoad()

    func sayHello() {
        print("Hello!")
    }
    sayHello()
}

override func viewDidLoad() {
    super.viewDidLoad()

    sayHello()
}

func sayHello() {
    print("Hello!")
}

当视图加载时,这将打印" Hello!"到Xcode中的控制台。

修改

根据您的屏幕截图,您无法以这种方式调用sayHello(),因为它永远不会在该上下文中调用。在调用你的函数时,它们需要属于某种类型的可执行文件"上下文。也就是说,一个最终将被执行的已定义代码路径。

不同的应用程序类型可能有不同的执行路径。 iOS应用程序还有其他代码需要在获取代码之前执行。因此,您的代码需要在Apple定义的位置(例如viewDidLoad())。如果不这样做,您可能会遇到编译时错误或意外行为。

另一方面,如果您只是创建一个名为something.swift的文件,并将以下代码插入该文件中:

func sayHello() {
    print("Hello!")
}
sayHello()

它将按预期编译和运行。

虽然看起来sayHello()调用不在任何已定义的执行路径中,但在后台sayHello()函数在main函数内调用。

所以至少,你的函数将从main函数调用。在更复杂的应用程序中,您的函数可以在该应用程序定义的其他内容中调用。

了解您的应用程序类型(iOS,控制台等)及其执行对于调用您的函数至关重要。