0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Apple] 写経 Start Developing iOS Apps (Swift)

Last updated at Posted at 2020-02-22

Apple公式ドキュメント Start Developing iOS Apps (Swift) の一部を写経します。

appデリゲートソースファイル

AppDelegate.swiftには、2つの主要な関数があります。

  • AppDelegateクラスを定義します。appデリゲートは、コンテンツが描画されるウィンドウを作成し、アプリケーション内の状態遷移を受け付けるための場所を提供します。
  • アプリケーションのエントリポイントと、入力イベントをアプリケーションへ渡す実行ループを作成します。これはファイル先頭にあるUIApplicationMain属性(@UIApplicationMain)によって行われます。
    UIApplicationMain属性は、デリゲートクラスとしてAppDelegateクラスをUIApplicationMainへ渡すことと同義です。戻り値の中で、システムはアプリケーションオブジェクトを作成します。アプリケーションオブジェクトはアプリケーションのライフサイクルを管理する責任を負います。システムはAppDelegateクラスのインスタンスもまた作成しアプリケーションオブジェクトへ割り当てます。最終的にシステムはアプリケーションを起動します。

わかったこと:
アプリケーションの実行時に、アプリケーションオブジェクトとappデリゲートが作成される。
UIApplicationMain属性をつけることで、アプリケーションのエントリポイントとappデリゲートであることをシステムに認識させる。

AppDelegateクラスはプロパティを一つ含みます。

var window: UIWindow?

このプロパティはアプリケーションのウィンドウへの参照を格納しています。ウィンドウはアプリケーションのビュー階層の根元です。コンテンツはこの中に描画されます。このwindowプロパティはオプショナルであることに注意が必要です。ある時点では値が入っていません(nilです)。

AppDelegateクラスは以下のメソッドのスタブ実装も含んでいます。

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool
func applicationWillResignActive(_ application: UIApplication)
func applicationDidEnterBackground(_ application: UIApplication)
func applicationWillEnterForeground(_ application: UIApplication)
func applicationDidBecomeActive(_ application: UIApplication)
func applicationWillTerminate(_ application: UIApplication)

これらのメソッドは、アプリケーションオブジェクトにappデリゲートとやりとりさせるためのものです。

いずれのデリゲートメソッドも既定の振る舞いを持っています。メソッドが空か存在しないと、既定の振る舞いをします。

わかったこと:
AppDelegateプロトコルを実装することでアプリケーションオブジェクトとやりとりする。
AppDelegateプロトコルの中身を実装しないと、既定の振る舞いをする。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?