2017-01-03 10 views
-4

私はすぐに敏感です。私は関数を呼び出す方法を学びたいと思っています。それはかなりまっすぐ進むと思われますが、実装しようとすると、これらの「期待される宣言エラー」がすべて発生します。何が問題なのか分かりません。私はviewDidLoad関数を入れてみましたが、遅延や何かを置いたときはいつでも、待たずに自動的に実行されます。どのように関数を正しく呼び出すのですか?ここでのコードは、あなたがここに すぐに機能を呼び出す

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

viewDidLoad()方法では、コンテキスト

enter image description here

+2

一部のコンテキストを表示します。あなたの質問に投稿したコードはどこですか?エラーはどこに正確に現れていますか? – rmaddy

+0

このコードは正しいです。私はそれが "こんにちは!"それは別のことをしますか? –

+0

*期待される宣言エラー*は、一般的に以下を意味します:呼び出しコードを関数/メソッドに入れます。 – vadian

答えて

3

の絵と思われるものを教えている、あなたはこのようにそれを呼び出すことができます。

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、コンソールなど)とその実行を理解することは、関数を呼び出すためには不可欠です。

関連する問題