Help us understand the problem. What is going on with this article?

【iOS】AppDelegate.swiftってなにしてんの?

More than 3 years have passed since last update.

はい、ふとAppDelegate.swiftがなんの用途のために使うのか気になったため実際に検証しました。

AppDelegate.swiftとは?

 アプリをつくった段階でデフォルトでつくられるファイルのひとつ。アプリ全体のライフタイムイベントを管理するためのクラス。
 

実際に検証!

ソースコード
AppDelegate.swift
import UIKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?


    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        // Override point for customization after application launch.
        return true
    }

    func applicationWillResignActive(application: UIApplication) {
        println("アプリ閉じそうな時に呼ばれる")
    }

    func applicationDidEnterBackground(application: UIApplication) {
        println("アプリを閉じた時に呼ばれる")
    }

    func applicationWillEnterForeground(application: UIApplication) {
        println("アプリを開きそうな時に呼ばれる")
    }

    func applicationDidBecomeActive(application: UIApplication) {
        println("アプリを開いた時に呼ばれる")
    }

    func applicationWillTerminate(application: UIApplication) {
        println("フリックしてアプリを終了させた時に呼ばれる")
    }

}

それぞれのメソッド内でメソッド名をもとにどんな時に呼ばれるのかを予想してprintln("どういう時")を記述。

①Runでアプリを起動(cmd + R)

アプリ起動

アプリが開いたのでapplicationDidBecomeActive(application: UIApplication)メソッドが呼ばれたっぽい!

②アプリを閉じる(cmd + shift + H)

アプリを閉じる

アプリを閉じたのでapplicationWillResignActive(application: UIApplication)メソッドapplicationDidEnterBackground(application: UIApplication)メソッドが呼ばれたっぽい!

③アプリを開く(クリック)

アプリを開く

アプリを開いたのでapplicationWillEnterForeground(application: UIApplication)メソッドapplicationDidBecomeActive(application: UIApplication)メソッドが呼ばれたっぽい!

④ホームボタン2度押し(cmd + shift + Hを2度押し)

ホームボタン2度押し

アプリを閉じようとしているのでapplicationWillResignActive(application: UIApplication)メソッドが呼ばれたっぽい!

⑤フリックでアプリを終了する

アプリを落とす

アプリを終了させたのでapplicationDidEnterBackground(application: UIApplication)メソッドapplicationWillTerminate(application: UIApplication)メソッドが呼ばれたっぽい!

検証終了

やはり、println()内で予想した仮説どおりの動きをしてくれた。

実際どのような処理をしたい時に使うの?

 logを取ったり(どの画面で閉じたか)、ローカルのデータベースに今の状態を保存したい時とかにつかう。
この辺になってくると高度な処理になってくるらしいので、使うのはまだ先の模様。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away