2017-01-03 6 views
-4

Так что я новичок в быстром. Я пытаюсь узнать, как вызвать функции. Это кажется довольно прямым, но, пытаясь реализовать его, я получаю все эти «ошибки ожидаемого объявления». Я не знаю, в чем проблема. Я пытаюсь включить функцию viewDidLoad, но всякий раз, когда я делаю это, когда я помещаю задержку или что-то в этом роде, она автоматически выполняет их без ожидания. Как правильно вызывать функцию? вот код скажите мне, что вы думаетеВызывающие функции в swift

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

здесь картина контексте

enter image description here

+2

Показать контекст. Где код, который вы отправили в своем вопросе? Где ошибка появляется точно? – rmaddy

+0

Этот код верен. Я ожидаю, что он напечатает «Привет!». Это что-то еще? –

+0

* Ожидаемая ошибка объявления * обычно означает: Поместите код вызова в функцию/метод. – vadian

ответ

3

В методе viewDidLoad(), вы могли бы назвать это так:

override func viewDidLoad() { 
    super.viewDidLoad() 

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

или

override func viewDidLoad() { 
    super.viewDidLoad() 

    sayHello() 
} 

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

При загрузке представления это напечатает «Hello!». на консоль в Xcode.

EDIT:

Основываясь на скриншоте, вы не можете назвать sayHello(), что путь, потому что он никогда не будет называться в этом контексте. При вызове своих функций они должны быть в каком-то «исполняемом» контексте. То есть, определенный путь кода, который в конечном итоге будет выполнен.

Различные типы приложений могут иметь разные пути выполнения. Приложение iOS имеет другой код, который нужно будет выполнить, прежде чем перейти к вашему коду. Таким образом, ваш код должен быть на месте, который Apple определила (например, viewDidLoad()). Если вы этого не сделаете, вы, скорее всего, столкнетесь с ошибками компиляции или нежелательным поведением.

На другом конце спектра, если вы просто создать файл с именем something.swift и вставить только следующий код в этот файл:

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

Он будет скомпилировать и запустить, как ожидалось.

Хотя кажется, что вызов sayHello() не находится в пределах определенного пути выполнения, в фоновом режиме функция sayHello() вызывается в функции main.

Так что, по крайней мере, ваша функция будет вызываться из функции main. В более сложных приложениях ваша функция может быть вызвана в чем-то другом, определяемом этим приложением.

Понимание вашего типа приложения (iOS, консоль и т. Д.) И его выполнение необходимы для вызова ваших функций.

Смежные вопросы