В методе 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, консоль и т. Д.) И его выполнение необходимы для вызова ваших функций.
Показать контекст. Где код, который вы отправили в своем вопросе? Где ошибка появляется точно? – rmaddy
Этот код верен. Я ожидаю, что он напечатает «Привет!». Это что-то еще? –
* Ожидаемая ошибка объявления * обычно означает: Поместите код вызова в функцию/метод. – vadian