LoginSignup
3
2

More than 5 years have passed since last update.

MacOS X アプリケーションのライフサイクル

Last updated at Posted at 2018-09-17

開発環境

  • MacOSX HighSierra(10.13.6)
  • Xcode Version 9.4.1 (9F2000)
  • Swift4.2
  • Cocoa

アプリケーションのライフサイクルを知る

アプリケーションのライフサイクルを知らないと開発できない。
Android開発やiPhone開発のライフサイクルメソッドと同じ考えで良い。
プロジェクト作成時に自動生成されているメソッドの説明をする。

AppDelegate.swift

AppDelegate.swiftはアプリケーションのライフサイクルメソッドがある。
プロジェクト生成時に以下の2つのライフサイクルメソッドが自動生成される。
他のタイミングで処理したい場合、他のライフサイクルメソッドを利用すること。
詳細はリファレンスで確認できる。
リファレンス : UIApplication Delegate

  • applicationDidFinishLaunching(_:)
    アプリケーションの起動が完了したときに呼び出される。
    リファレンス : applicationDidFinishLaunching

  • applicationWillTerminate(_:)
    アプリケーションが終了する前に呼び出される。
    リファレンス : applicationWillTerminate

ViewController.swift

ViewController.swiftはViewのライフサイクルメソッドがある。
Main.storyboardにあるView Controllerのこと。
基本的にアプリケーションのウインドウを開いたり閉じたりすると一緒にView Controllerも生成と終了する。
Viewの生成と終了を繰り返せば、その度にライフサイクルメソッドが呼び出される。
詳細はリファレンスで確認できる。
リファレンス : UIViewController

  • viewDidLoad()
    View生成後に呼び出される。
    リファレンス : viewDidLoad()

  • representedObject
    View間のデータ(プロパティ、パラメータ)の受渡しをするときに利用する。
    自動生成コメントより、「Update the view, if already loaded.(既にロードされている場合は、ビューを更新します。)」
    リファレンス : representedObject

他のライフサイクル処理を作成

既存のライフサイクルを参考にする。
ViewController.swiftにあるviewDidLoad()みたいにsuper.viewDidLoad()を記述すること。
つまり、親クラスの物を呼び出す。super.xxx()の記述を忘れてはいけない。

ViewController.swift
override func viewDidLoad() {
        super.viewDidLoad()    // ←これ

        // Do any additional setup after loading the view.
    }

以上、フォローといいねをお願いします。

3
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
3
2