はい、ふと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度押し)
アプリを閉じよう
としているのでapplicationWillResignActive(application: UIApplication)メソッド
が呼ばれたっぽい!
⑤フリックでアプリを終了する
アプリを終了させた
のでapplicationDidEnterBackground(application: UIApplication)メソッド
とapplicationWillTerminate(application: UIApplication)メソッド
が呼ばれたっぽい!
検証終了
やはり、println()内で予想した仮説どおりの動きをしてくれた。
実際どのような処理をしたい時に使うの?
logを取ったり(どの画面で閉じたか)、ローカルのデータベースに今の状態を保存したい時とかにつかう。
この辺になってくると高度な処理になってくるらしいので、使うのはまだ先の模様。